JSON資料格式轉換2-物件和陣列修改
阿新 • • 發佈:2022-05-27
修改內容
使用fastjson對JSON內容的轉換
如下目標JSON字串和希望結果字串,修改json數組裡面的內容和json物件裡面的內容
目標JSON字串
{ "result": { "data": [ { "code": "CF327", "value": "0.0016592020664306757" }, { "code": "CF327", "value": "0.0016592020664306757" } ], "message": "計算成功!", "location":{ "province":"zhejiang", "city":"hangzhou" }, "status": 0 } }
希望結果字串
{
"result": {
"data": [
{
"code": "CF327",
"value": "0.0016592020664306757"
},
{
"code": "CF326",
"value": "0.001"
}
],
"message": "計算成功!",
"location":{
"province":"zhejiang",
"city":"shaoxin"
},
"status": 0
}
處理步驟
JSONObject inputjson = JSON.parseObject("{\n" + "\t\"result\": {\n" + "\t\t\"data\": [\n" + "\t\t\t{\n" + "\t\t\t\t\"code\": \"CF327\",\n" + "\t\t\t\t\"value\": \"0.0016592020664306757\"\n" + "\t\t\t},\n" + "\t\t\t{\n" + "\t\t\t\t\"code\": \"CF327\",\n" + "\t\t\t\t\"value\": \"0.0016592020664306757\"\n" + "\t\t\t}\n" + "\t\t],\n" + "\t\t\"message\": \"計算成功!\",\n" + "\t\t\"location\":{\n" + "\t\t\t\"province\":\"zhejiang\",\n" + "\t\t\t\"city\":\"hangzhou\"\n" + "\t\t},\n" + "\t\t\"status\": 0\n" + "\t}\n" + "}"); System.out.println("修改前inputjson:"+inputjson); //解析資料 JSONObject resultjson = inputjson.getJSONObject("result"); JSONObject locationjson = resultjson.getJSONObject("location"); JSONArray datajson = resultjson.getJSONArray("data"); //修改資料 if(locationjson.containsKey("city")){ locationjson.put("city","shaoxin"); } if(datajson.size()>=1){ JSONObject datajsontwo = datajson.getJSONObject(1); datajsontwo.put("code","CF326"); datajsontwo.put("value","0.001"); } System.out.println("修改後inputjson:"+inputjson);