Json对象的对写(Jackson使用)。

Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。以下是通过一些例子来了解如何使用Jackson来写或读json。

写json数据到响应的文本中。

	public void createJsonObject() throws Exception{
		
		JsonFactory jsonFactory = new JsonFactory(); //创建json工厂,主要用来创建json生成器,json解析器的工具
		
		JsonGenerator jsonGenerator 
		         = jsonFactory.createJsonGenerator(new File("D:/test.json"), JsonEncoding.UTF8); //创建json生成器
		
		jsonGenerator.writeStartObject();//开始写入json格式的字符串此语句相当于:"{"
		
		jsonGenerator.writeFieldName("name");//相当于key为"name"
		jsonGenerator.writeString("Nacey");//相当于value为"Nacey"
		jsonGenerator.writeStringField("sex", "male"); //方法同上//"sex":"male"
		
		jsonGenerator.writeArrayFieldStart("Address"); //创建一个数组类似:Address:[
		jsonGenerator.writeString("tel");
		jsonGenerator.writeString("1555122120");
		jsonGenerator.writeEndArray();
		
		jsonGenerator.writeEndObject();//结束json对象
		jsonGenerator.close();
		
	}
输出结果:{"name":"Nacey","sex":"male","Address":["tel","1555122120"]}


Jackson处理JSON非常简单,但要了解JSON文本的格式,这样就可以遍历了,也就可以很方便的读出来了。

public void parseJsonObject() throws Exception{
		JsonFactory jsonFactory = new JsonFactory(); //创建json工厂,主要用来创建json生成器,json解析器的工具
		
		/**
		 * 解析器是用于标记JSON内容到令牌和相关数据的对象。这是最低级的JSON内容的读访问。
		 */
		JsonParser jsonParse = jsonFactory.createJsonParser(new File("D:/test.json"));
		 //循环判断下一个令牌是否到结束令牌
		while(jsonParse.nextToken() != JsonToken.END_OBJECT){
			String fieldName = jsonParse.getCurrentName();
			if("name".equals(fieldName)){
				jsonParse.nextToken();
				System.out.println(jsonParse.getText());
			}
			if("sex".equals(fieldName)){
				jsonParse.nextToken();
				System.out.println(jsonParse.getText());
			}
			if("Address".equals(fieldName)){ //数组判断有没有到数组结束位置
				jsonParse.nextToken();
				 while (jsonParse.nextToken() != JsonToken.END_ARRAY) {  
                    System.out.println(jsonParse.getText());   
                 }  
			}
		}
		jsonParse.close();
	}

输出结果:

Nacey
male
tel
1555122120




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值