将Json转换为Pojo

时间:2014-07-21 13:41:03

标签: java android json gson retrofit

我最近决定重写一个较旧的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对象,因此它可以将奇怪的响应转换为正常的对象列表。

2 个答案:

答案 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