jackson中的写和解析JSON的api例子
2011-08-15 20:15
441 查看
本次介绍的是在jackson中,如何去写和解析json,其中用到的都是jackson自己的
流的API.
1 JACKSON中写一个json文件使用的是JsonGenerator类,
输出为:
{
"name":"mkyong",
"age":29,
"messages":["msg 1","msg 2","msg 3"]
}
2 解析JSON
我们把上面输出的JSON文件重新读取出来,再解析, 注意在json中,解析是以TOKEN方式进行的,比如:
{
"name":"mkyong"
}
将为解析为:
Token 1 = “{“
Token 2 = “name”
Token 3 = “mkyong”
Token 4 = “}”
代码:
最后输出:
mkyong
29
msg 1
msg 2
msg 3
流的API.
1 JACKSON中写一个json文件使用的是JsonGenerator类,
import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonEncoding; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonMappingException; public class JacksonStreamExample { public static void main(String[] args) { try { JsonFactory jfactory = new JsonFactory(); /*** write to file ***/ JsonGenerator jGenerator = jfactory.createJsonGenerator(new File( "c:\\user.json"), JsonEncoding.UTF8); jGenerator.writeStartObject(); // { jGenerator.writeStringField("name", "mkyong"); // "name" : "mkyong" jGenerator.writeNumberField("age", 29); // "age" : 29 jGenerator.writeFieldName("messages"); // "messages" : jGenerator.writeStartArray(); // [ jGenerator.writeString("msg 1"); // "msg 1" jGenerator.writeString("msg 2"); // "msg 2" jGenerator.writeString("msg 3"); // "msg 3" jGenerator.writeEndArray(); // ] jGenerator.writeEndObject(); // } jGenerator.close(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
输出为:
{
"name":"mkyong",
"age":29,
"messages":["msg 1","msg 2","msg 3"]
}
2 解析JSON
我们把上面输出的JSON文件重新读取出来,再解析, 注意在json中,解析是以TOKEN方式进行的,比如:
{
"name":"mkyong"
}
将为解析为:
Token 1 = “{“
Token 2 = “name”
Token 3 = “mkyong”
Token 4 = “}”
代码:
import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonToken; import org.codehaus.jackson.map.JsonMappingException; public class JacksonStreamExample { public static void main(String[] args) { try { JsonFactory jfactory = new JsonFactory(); /*** read from file ***/ JsonParser jParser = jfactory.createJsonParser(new File("c:\\user.json")); // loop until token equal to "}" while (jParser.nextToken() != JsonToken.END_OBJECT) { String fieldname = jParser.getCurrentName(); if ("name".equals(fieldname)) { //当前结点为name jParser.nextToken(); System.out.println(jParser.getText()); // 输出 mkyong } if ("age".equals(fieldname)) { // 当前结点为age // move to next, which is "name"'s value jParser.nextToken(); System.out.println(jParser.getIntValue()); // display 29 } if ("messages".equals(fieldname)) { jParser.nextToken(); while (jParser.nextToken() != JsonToken.END_ARRAY) { // display msg1, msg2, msg3 System.out.println(jParser.getText()); } } } jParser.close(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
最后输出:
mkyong
29
msg 1
msg 2
msg 3
相关文章推荐
- Jackson解析JSON例子
- 高效解析json例子,Jackson框架
- android:json解析的两个工具:Gson和Jackson的使用小例子
- Jackson解析JSON例子
- android:json解析的两个工具:Gson和Jackson的使用小例子
- Jackson解析JSON例子
- Jackson解析json API和实现分析
- android:json解析的两个工具:Gson和Jackson的使用小例子
- Jackson解析JSON例子
- JSON解析之json-lib和jackson的API
- android:json解析的两个工具:Gson和Jackson的使用小例子
- 高效解析json例子,Jackson框架
- android json解析及简单例子
- android中json解析的两个工具:Gson和Jackson的使用小demo
- Java下利用Jackson进行JSON解析和序列化
- iOS5系统API和5个开源库的JSON解析速度测试 推荐
- android json解析及简单例子 【转】
- android json解析及简单例子
- android json解析及简单例子
- Json解析工具Jackson的使用