像这样的东西。 http://jsonlint.com/说这是有效的。本例中简化了{}里面的Json。
[[0,{"ok":true},[]],[1,{"ok":false},[]]]
或者使用缩进:
[
[0, {
"ok": true
},
[]
],
[1, {
"ok": false
},
[]
]
]
这是对象JSONClass的类。
public class JSONClass {
boolean ok;
}
如果我做对了,这个JSON字符串是数组数组,后者包含一些ID,实际的JSON数据和空数组。我怎么能反序化呢?
这不起作用。我也尝试用子类制作课程,但没有成功。
JSONClass[] t = g.fromJson(json, JSONClass[].class);
答案 0 :(得分:0)
嗯,这里有一个数组数组。 Gson将允许您将JSON对象本身转换为您想要的类 - 但您必须分别在每个对象上调用gson.fromJson()。
给定包含json的字符串json,这样的东西应该可以工作:
Gson gson = new Gson();
JsonParser jsonParser = new JsonParser();
JsonArray jsonArray = jsonParser.parse(json).getAsJsonArray();
for (JsonElement e: jsonArray) {
JSONClass o = gson.fromJson(e.getAsJsonArray().get(1), JSONClass.class);
}
基本上,JsonParser会将您的文本转换为JsonElement,这是Json数组和对象的Gson基类。我们可以迭代我们解析文本的JsonArray的元素,这些元素又是格式[id,object]的另一个数组 - 并且对于每个元素,取对象部分,并将其反序列化为POJO。