Java处理json字符串,获取字段值和修改字段值
目录
1、添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
2、调用方法
package com.shucha.deveiface.biz.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sdy.mvc.utils.JsonUtil;
import com.shucha.deveiface.biz.model.RespMsgData;
/**
* @author tqf
* @Description
* @Version 1.0
* @since 2022-05-20 11:02
*/
public class RespMsgDataTest {
public static void main(String[] args) {
String repMsg = "{\"code\":0,\"data\":{\"current\":1,\"total\":10,\"pages\":1,\"size\":10,\"records\":[{\"organ\":\"杭州市公安局拱墅分局\",\"valid\":\"2012年09月09日至2022年09月09日\",\"address\":\"浙江省杭州市拱墅区莫干山路929号\",\"homeTown\":\"浙江杭州\",\"nation\":\"汉\",\"idCard\":\"330721199512101110\",\"sex\":\"男\",\"name\":\"张三\",\"birth\":\"1995年12月10日\",\"time\":\"2020年11月01日\",\"age\":\"25\"},{\"organ\":\"杭州市公安局拱墅分局\",\"valid\":\"2012年09月09日至2022年09月09日\",\"address\":\"浙江省杭州市拱墅区莫干山路929号\",\"homeTown\":\"浙江杭州\",\"nation\":\"汉\",\"idCard\":\"330721199512101110\",\"sex\":\"男\",\"name\":\"张三2\",\"birth\":\"1995年12月10日\",\"time\":\"2020年11月01日\",\"age\":\"25\"}]},\"success\":true,\"message\":\"ok\"}";
String errorMsg = "{\"code\":-1,\"message\":\"系统异常,请联系系统管理员!\",\"success\":false}";
System.out.println(getData(errorMsg, 0));
System.out.println(getData(repMsg, 0));
System.out.println(getData(repMsg, 1));
}
/**
* 查询返回的数据 records设置为null
* @param object
* @return
*/
public static String getData(String object, int number){
JSONObject jsonObject = JSON.parseObject(object);
JSONArray array = new JSONArray();
String code = jsonObject.getString("code");
if(code.equals("0")) {
String data = jsonObject.getString("data");
JSONObject datas = JSON.parseObject(data);
JSONArray jsonArray = JSON.parseArray(datas.getString("records"));
if(number >0) {
// 1、获取多少条数据
datas.put("records",getHowManyData(jsonArray,1));
} else {
// 2、设置结果列表为空数组
datas.put("records","[]");
}
jsonObject.put("data", datas);
return jsonObject.toJSONString();
} else {
return JSONObject.toJSONString(object);
}
}
/**
* 获取多少条数据
* @param jsonArray
* @param number
* @return
*/
public static JSONArray getHowManyData(JSONArray jsonArray, Integer number){
JSONArray array = new JSONArray();
if(jsonArray.size() >0) {
int i=0;
for (Object obj : jsonArray) {
if(i< number){
array.add(obj);
break;
}
i++;
}
}
return array;
}
}
3、返回结果
{"code":0,"data":{"current":1,"total":10,"pages":1,"size":10,"records":"[]"},"success":true,"message":"ok"}
{"code":0,"data":{"current":1,"total":10,"pages":1,"size":10,"records":[{"organ":"杭州市公安局拱墅分局","valid":"2012年09月09日至2022年09月09日","address":"浙江省杭州市拱墅区莫干山路929号","homeTown":"浙江杭州","nation":"汉","idCard":"330721199512101110","sex":"男","name":"张三","birth":"1995年12月10日","time":"2020年11月01日","age":"25"}]},"success":true,"message":"ok"}