使用gson解析时使用硬编码的json字符串

时间:2013-06-03 16:56:13

标签: json gson hardcoded

抱歉,如果之前已经回答了这个问题,但我没有找到任何答案。

问题如下:我使用GSON将我的json请求和响应序列化/反序列化为对象。它运作良好,但最近我在序列化时遇到了问题:

我想发送一个复杂的请求。因为我没有设计服务器端,所以我必须让我自己接受他们给我的东西,所以我有这个json:

{
  "id": null,
  "name": "n",
  "description": "some description",
  "type": 1,
  "channel": 0,
  "styles": [{
    "styleID": 1,
    "style": {... // lots of properties nested one inside another }
  }]
}

问题是:我不能为“style”的每个subProperty创建一个类,它们是:“events”,“buttons”,“labels”等...... 所以我想我会这样说:

public class MyData {
  private Integer id;
  // ...
  private String styles = getStylesJsonString(); // hardcoded styles in json format
}

但我不能,因为最终它变成了:

 "styles": "[{...}]"

无效(根据服务器)。

所有想法?

1 个答案:

答案 0 :(得分:0)

当您将JSON字符串分配给变量时,这是预期的响应,该变量只不过是String本身。我的建议使用

private Object styles;

并使用GSON进行反序列化,将结果转换为Map或Map List。