解析json字符串可以像解析DOM一样,解析每一个节点。Gson的jar包中提供了JsonParser类,专门用于解析json字符串的,注意只是json节点的内容解析出来,并不像前两节把整个json字符串反序列化为一个对象。
public static void main(String[] args) {
String jsonString = "{\"id\":1, \"name\":\"lzj\", \"cars\":[\"audi\", \"baoma\", \"benci\"]}";
JsonParser parser = new JsonParser();
JsonElement jsonNode = parser.parse(jsonString);
if (jsonNode.isJsonObject()) {
JsonObject jsonObject = jsonNode.getAsJsonObject();
JsonElement jsonElementId = jsonObject.get("id");
int id = jsonElementId.getAsInt();
System.out.println("id : " + id);
JsonElement jsonElementName = jsonObject.get("name");
String name = jsonElementName.getAsString();
System.out.println("name : " + name);
JsonElement jsonElementCars = jsonObject.get("cars");
JsonArray arrays = jsonElementCars.getAsJsonArray();
for(int i=0; i<arrays.size(); i++){
JsonElement jsonElementArray = arrays.get(i);
String car = jsonElementArray.getAsString();
System.out.println("car" + i + " : " + car);
}
}
}
运行程序,输出
id : 1
name : lzj
car0 : audi
car1 : baoma
car2 : benci