我最近决定重写一个较旧的Android应用程序,但我无法弄清楚如何转换服务器响应:
{
"response": "SUCCESS",
"data": {
"0": {
... fields ...
},
"1": {
... fields ...
},
... another objects
}
}
到常规java对象(或者在这种情况下是对象列表)。我以前使用过这种方法:
JSONObject response = new JSONObject(stringResponse);
JSONObject dataList = response.getJSONObject("data");
int i = 0;
while (true) {
dataList.getJSONObject(String.valueOf(i)); // here I get wanted object
i++;
}
获取相关对象然后我可以将它们放入List中,但现在我使用 Retrofit 库并且我找不到任何干净的解决方案来解析这么奇怪使用gson和改造的对象。
感谢您的帮助。
编辑:我想要的:
使用这样的改造发送请求:
@GET("/some params")
void restCall(... another params..., Callback<Response> callback);
然后在Response对象中有对象列表。我不知道如何声明Response对象,因此它可以将奇怪的响应转换为正常的对象列表。
答案 0 :(得分:-1)
你有很多图书馆..我使用的是json-simple你可以使用:
JSONValue.parse(String);
答案 1 :(得分:-1)
看看gson吧!我将它用于我的所有项目,序列化和反序列化pojos非常简单和可定制(如果需要,大多数东西都是开箱即用的) gson
这是他们的第一个例子:
class BagOfPrimitives {
private int value1 = 1;
private String value2 = "abc";
private transient int value3 = 3;
BagOfPrimitives() {
// no-args constructor
}
}
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);
==> json is {"value1":1,"value2":"abc"}
obj = gson.fromJson( json );
==> you get back the same object