Json数据的解析

字数 99阅读 32

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。

推荐阅读更多精彩内容