我有一个json,如下面的
{
"apiVersion": "v1",
"metadata": {
"status": {
"statusCode": 0
},
},
"stuff": [
{
"name": {
"text": "red"
},
"properties": [
{
"attributes": {
"shade": "dark"
},
"component": {
"id": "BA1",
}
"type": "Color"
}
]
},
{
"name": {
"text": "Toyota Camry"
},
"properties": [
{
"attributes": {},
"component": {
"id": "MS",
},
"type": "Vehicle"
}
]
},
]
}
我正在使用GSON解析结果:
Gson gson = new Gson();
JsonObject json = (JsonObject) gson.fromJson(in, JsonObject.class);
System.out.println(json.get("apiVersion").getAsString());
我可以获得apiVersion
但不知道如何获取json树中的元素。例如,type
...如果我想输出所有不同的type
..在这种情况下Color and Vehicle
答案 0 :(得分:0)
您可以在该问题中创建一个对象并将json解析为它(使用GSON):
ParsedObject parsedObject = new Gson().fromJson(json, ParsedObject.class);
public class ParsedObject {
@SerializedName(value = "apiVersion")
private String mApiVersion;
@SerializedName(value = "metadata")
private Metadata mMetadata;
}
答案 1 :(得分:0)
我必须在这里遗漏一些东西,但为什么不能将呼叫嵌套到getJsonObject
?例如,要获取状态代码:
System.out.println(json.getAsJsonObject("metadata")
.getAsJsonObject("status")
.get("statusCode").getAsInt());