JSON:解析動態變量名和JSON數
{
id: "val",
name: "val",
var1: "val",
var2: "val",
...
var#: "val"
}
在PHP我寫對子級類似:
while(isset(${"var".$i++}))
但在Java(使用GSON)如何解析這個...它可能?
JSON:解析動態變量名和JSON數
{
id: "val",
name: "val",
var1: "val",
var2: "val",
...
var#: "val"
}
在PHP我寫對子級類似:
while(isset(${"var".$i++}))
但在Java(使用GSON)如何解析這個...它可能?
如果您只是想拉出值並且不依賴於任何數據綁定,那麼您可以使用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();
}
是的,你可以使用類似這樣的東西。
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和(我認爲),你會得到性能提升,如果你有很多我
是的,這是可能的。你想把它解析成什麼? –
all vars to 1 ArrayList – Shaddow
使用'Gson'或'Jackson'或_any_其他JSON解析器並將數據解析爲'Map'。 –