JSON数据看起来就像一棵树,也可以用类似于XML的解析方法来解析。将上篇文章的Demo改为:
package com.hankcs;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ObjectNode;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args) throws IOException
{
ObjectMapper m = new ObjectMapper();
// can either use mapper.readTree(source), or mapper.readValue(source, JsonNode.class);
JsonNode rootNode = m.readTree(new File("user.json"));
// ensure that "last name" isn't "Xmler"; if is, change to "Jsoner"
JsonNode nameNode = rootNode.path("name");
String lastName = nameNode.path("last").getTextValue();
System.out.println(lastName);
if ("xmler".equalsIgnoreCase(lastName))
{
((ObjectNode) nameNode).put("last", "Jsoner");
}
// and write it out:
m.writeValue(new File("user-modified.json"), rootNode);
}
}

项目源码:http://pan.baidu.com/s/1iqFYe
参考:http://wiki.fasterxml.com/JacksonInFiveMinutes#Full_Data_Binding_.28POJO.29_Example
知识共享署名-非商业性使用-相同方式共享:码农场 » 五分钟Jackson入门(三) JSON数据类XML转换(附项目源码)
码农场