阿里Json之FastJson的简单应用

1.FastJson的介绍:

JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson

1.2.FastJson的特点:
1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast
2.功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
3.零依赖(没有依赖其它任何类库)

1.3.FastJson的简单说明:
FastJson对于json格式字符串的解析主要用到了下面三个类:
1.JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换
2.JSONObject:fastJson提供的json对象
3.JSONArray:fastJson提供json数组对象

2.简单用法

//简单的字符串
private static String  json= "{\"name\":\"slm\",\"age\":12}";
//json字符串-数组类型
private static final String  jsonArray = "[{\"name\":\"slm\",\"age\":12},{\"name\":\"lisi\",\"age\":15}]";

//复杂格式json字符串
private static final String  jsonMore= "{"areacode":"江苏省连云港市","countAll":0,"countCorrect":0,"datatime":"4408097","logid":"201604181600001249944032","requestinfo":"{\"sign\":\"4\",\"timestamp\":\"1460966395908\",\"remark\":\"4\",\"subjectPro\":\"123456\",\"interfaceUserName\":\"12345678900987654321\",\"channelno\":\"100\",\"imei\":\"12345678900987654321\",\"subjectNum\":\"18361451463\",\"imsi\":\"12345678900987654321\",\"queryNum\":\"18361451463\"}","requestip":"58.223.4.210","requesttime":"2016-04-18 16:00:00","requesttype":"0","responsecode":"010005","responsedata":"无查询结果"}"

2.1json字符串-简单对象型与JSONObject之间的转换


 JSONObject jsonObject = JSONObject.parseObject(json);
 //获取name
String name= jsonObject .getString("name");
//获取age
String age= jsonObject .getString("age");
System.out.println(name+","+age)


 JSONObject jsonObject = JSONObject.parseObject(json);
String name= jsonObject .getString("name");
//直接转换成json字符串

String jsonString=JSONObject.toJSONString(jsonObject);

2.2 json字符串(数组类型)与JSONArray之间的转换

 //已知JSONArray,目标要转换为json字符串
	    JSONArray jsonArray 1= JSONArray.parseArray(jsonArray );
	    String jsonString = JSONArray.toJSONString(jsonArray1);

	   // System.out.println(jsonString);
  
	    for (int i = 0; i < jsonArray1.size(); i++) {

	        JSONObject jsonObject = jsonArray1.getJSONObject(i);
	        System.out.println("name:  " + jsonObject.getString("name") + ":" + "  age:  "
	                + jsonObject.getInteger("aAge"));
	    }

2.3复杂json格式字符串与JSONObject之间的转换

JSONObject object = JSON.parseObject(jsonMore);

		  //第一次获取的还是一个json类型的数据
	      //还需要进一步获取
	      String object2 = (String)object.get("requestinfo");
	      JSONObject ss = JSON.parseObject(object2);
	      String imei = ss.getString("imei");
		//通过get可以直接获取数据
	      String areacode = (String) object.get("areacode");
	      String responsedata = (String) object.get("responsedata");
	      String requestip = (String) object.get("requestip");

猜你喜欢

转载自blog.csdn.net/weixin_38842096/article/details/84591555