JSON数据转换

**1.JSONArray.toList(array, Person.class)

List<Person> list = JSONArray.toList(array, Person.class);// 过时方法**

2.JSONArray.toList

List<?> list2 = JSONArray.toList(array, new Person(), new JsonConfig());//参数1为要转换的JSONArray数据,参数2为要转换的目标数据,即List盛装的数据

3.JSON.parseArray

List<SaveApplyFormDataDTO> applyFormSaveDTOS =           JSON.parseArray(applyFormSyncPO.getContent(), SaveApplyFormDataDTO.class);

4.String转成JSON

String json = "{"abc":"1","hahah":"2"}";
JSONObject jsonObject = JSONObject.parseObject(content);

想要取出值,可以对jsonObject进行操作:

jsonObject.getString("abc");

结果为:1

5.将String转为list后转为JSON

List<String> list = new ArrayList<String>(); 
list.add("username"); 
list.add("age"); 
list.add("sex"); 
JSONArray array = new JSONArray(); 
array.add(list);

将String转为map后转为JSON

Map<String, String> map = new HashMap<String, String>();
 map.put("abc", "abc");
map.put("def", "efg");
JSONArray array_test = new JSONArray();
array_test.add(map);
 JSONObject jsonObject = JSONObject.fromObject(map);

特别注意:从JSONObject中取值,碰到了数字为key的时候,如

{
	 "userAnswer": {
			 "28568": {
						 "28552": {
							 "qId": "28552",
							 "order": "1",
							 "userScore": {
							 "score": 100
						 },
				 		"answer": {
				 			"28554": "28554"
				 		},
						 "qScore": "100.0",
					 	"qtype": "SingleChoice",
					 	"sId": "28568"
				 	}
			 }
	 },
	 "paperType": "1",
	 "paperOid": "28567",
	 "instanceId": 30823,
	 "remainingTime": -1,
	 "examOid": "28570"
}

获取“userAnswer”的value,再转成JSON,可仿照如下形式:

JSONObject userJson = JSONObject.parseObject(jsonObject.getString("userAnswer"));

但是想获取key"28568"就没这么容易了。直接像上述的写法,会报错。
我们浏览fastjson中的源码,总结下,应该如下写:

JSONObject question = (JSONObject) JSONObject.parseObject(section.getString("28568"), Object.class);
	src: [
		 	{
		 		"comcode":"2143214",
		 		"licenseno":"粤·13",
		 		"qqq":"2131233123",
		 		"startdate":"2019-01-01"
		 	},
			{
				"comcode":"124124",
				"licenseno":"粤·1338",
				"qqqq":"1231233123123",
				"startdate":"2019-01-01"
			}
		]

	JSONArray ja = JSONArray.parseArray(src);  //把字符串转成json数组

	String one = ja.getString(0);   //取第一个元素   

	JSONObject jb123 = JSONObject.parseObject(one);    //把这一个json串转成 json对象

	System.out.println("licenseno is --------------- + jb123.get("licenseno"));    //获取属性值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值