1.对于Json这种目前应用广泛的数据,现在目前已经存在了很多支持他的开源库,例如fastJson以及Gson.
本帖将使用Gson进行对Json数据的解析。不管对于前端开发,android开发,以及接口测试都是不可或缺的部分。
这是手写的jSON数据
{
"id":1,
"UserName":"好大一只鹏",
"costCenterItems":[
{
"userID":1,
"gender":null
}
]
}
使用上面的Json数据进行讲解:
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
String value ="{\"id\":1,\"UserName\":\"好大一只鹏\",\"costCenterItems\":[{\"userID\":1,\"gender\":null}]}";
JsonObject valueobject =new JsonParser().parse(value).getAsJsonObject();
valueobject.addProperty("username","zhang");
valueobject.addProperty("id",2);
System.out.println(valueobject.toString());
JsonElement a=valueobject.get("costCenterItems");
JsonArray b=a.getAsJsonArray();
b.get(0).getAsJsonObject().addProperty("departmentOid","1221");
JsonElement s =new JsonParser().parse(b.toString());
valueobject.add("costCenterItems",s);
System.out.println(valueobject.toString());
注意:
1 .addProperty()方法可以给JsonObject添加key-value(包含:String,Int,"null"),如果property存在,则会覆写,如果不存在则会新增
2 .add()方法需要俩个参数key-value ,其中value是一个JsonElement对象
3 .get()方法返回的是一个JsonElement对象,若需要字符串可以使用.getAsString()方法。
4. 如果需要给某个JsonObject拼接一个jsonArray,需要先把JsonArray转成字符串,从JsonParser中拿到JsonElement,然后在addProperty。
网友评论