我试图解析一个jsonObject,似乎无法得到它,这是我得到的.
json = (json data)
JsonParser parser = new JsonParser();
JsonObject rootObj = parser.parse(json).getAsJsonObject();
JsonObject paymentsObject = rootObj.getAsJsonObject("payments");
for(JsonObject pa : paymentsObject){
String dateEntered = pa.getAsJsonObject().get("date_entered").toString();
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个不适用于键入我缺少的东西的foreach.我尝试了不同的方法,但似乎无法得到它.谢谢
JSON
{
"Name":"Test 2",
"amountCollected":"1997",
"payments":[
{
"quoteid":"96a064b9-3437-d536-fe12-56a9caf5d881",
"date_entered":"2016-05-06 08:33:48",
"amount":"1962",
},
{
"quoteid":"96a064b9-3437-d536-fe12-56a9caf5d881",
"date_entered":"2016-05-06 08:33:08",
"amount":"15",
},
{
"quoteid":"96a064b9-3437-d536-fe12-56a9caf5d881",
"date_entered":"2016-05-06 03:19:08",
"amount":"20",
}
]
}
Run Code Online (Sandbox Code Playgroud)
And*_*eas 40
现在,我们可以看到的数据,我们可以看到,payments 是实际上是一个数组(值使用[]).
这意味着你需要调用rootObj.getAsJsonArray("payments")哪个返回a JsonArray,它是一个Iterable<JsonElement>,这意味着你的循环应该是for(JsonElement pa : paymentsObject).
请记住,数组的每个值都可以是任何类型的Json元素(对象,数组,字符串,数字......).
你知道他们是JsonObject,所以你可以打电话getAsJsonObject()给他们.
json = (json data)
JsonParser parser = new JsonParser();
JsonObject rootObj = parser.parse(json).getAsJsonObject();
JsonArray paymentsArray = rootObj.getAsJsonArray("payments");
for (JsonElement pa : paymentsArray) {
JsonObject paymentObj = pa.getAsJsonObject();
String quoteid = paymentObj.get("quoteid").getAsString();
String dateEntered = paymentObj.get("date_entered").getAsString();
BigDecimal amount = paymentObj.get("amount").getAsBigDecimal();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30271 次 |
| 最近记录: |