JSON:
{
id: "val",
name: "val",
var1: "val",
var2: "val",
...
var#: "val"
}
在PHP中,我会写一些类似的东西:
while(isset(${"var".$i++}))
但是如何在Java中解析它(使用gson)......它可能吗?
答案 0 :(得分:1)
如果您只想提取值并且不依赖于任何数据绑定,那么您可以使用Gson解析器来解析JSON树并自己进行操作。
示例代码如下所示。
JsonParser jsonParser = new JsonParser();
JsonElement tree = jsonParser.parse(json_input);
// now you can walk it
JsonObject document = tree.getAsJsonObject();
//check if -- is set
document.has("var1");
// get the value
document.get("var1").getAsString()
// assuming your identifiers are are all consecutively numbered
for (int i = 1; document.has("var" + i); i++)
document.get("var" + i).getAsString();
}
// or to mimic your example - at the expense of readability
int i = 0;
while (document.has("var" + ++i)) {
document.get("var" + i).getAsString();
}
答案 1 :(得分:0)
是的,你可以使用这样的东西。
var i = 1;
while (typeof e("data.var" + i) != 'undefined') {
// DO STUFF
i++
}
我质疑为什么这是必要的,将var1和var2变成数组会更容易,例如
{
id: "val",
name: "val",
myVar: [
{"1" : "val",
{"2" : "val"}
],
...
var#: "val"
}
然后你可以使用foreach和(我认为)如果你有很多我可以获得性能提升