【发布时间】:2013-07-24 03:23:23
【问题描述】:
我正在使用的服务器返回一个 json 对象,其中包含一个对象列表,而不仅仅是一个。
{
"1":{"id":"1","value":"something"},
"2":{"id":"2","value":"some other thing"}
}
我想把这个json对象转换成对象数组。
我知道我可以使用 Gson,并创建一个这样的类:
public class Data {
int id;
String value;
}
然后使用
Data data = new Gson().fromJson(response, Data.class);
但它仅适用于 json 对象内的对象。 我不知道如何转换以数字为键的json对象。
或者我需要更改服务器以响应这样的事情?:
{["id":"1","value":"something"],["id":"2","value":"some other thing"]}
但我不想更改为服务器,因为我必须更改所有客户端代码。
【问题讨论】:
-
那个 JSON 样本看起来像一个地图。那么如何将其转换为地图,然后从该地图中获取 values() 呢?它看起来并不完全正确,但我认为您的 Json 字符串不正确:)
-
这不是“对象列表”。它是一个包含其他对象的对象,这些对象碰巧使用数字作为字段名称 - 或者基本上是最基本的
Map<Integer, Data>。