2013-06-03 71 views
0

如果问题以前已经回答,但是我没有找到任何内容,对不起。用gson解析时使用硬编码的json字符串

问题如下:我使用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 } 
    }] 
} 

的问题是:我不能为的“风格”,每个子属性创建一个类,它们是:“事件”,“按钮”,“标签”等... 所以我想我会把它像这样:

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

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

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

这是无效(根据服务器)。

那么有什么想法?

+0

你想**序列化**构建类似JSON响应的一些类?或者你想**反序列化**到一些类的JSON响应? – MikO

+0

问题是我需要序列化和反序列化MyData对象到/从json中,唯一相关的信息是id,名称和类型。但在服务器端,他们期待更多的信息,比如样式,他们也需要具有特定的字段。我以为我会用硬编码的字符串。 – jereshi

回答

0

这是预期的响应,因为您正在将JSON字符串分配给只是字符串本身的变量。我的建议使用

private Object styles; 

并使用GSON反序列化将结果转换为Map或Map列表。