【发布时间】:2013-08-24 04:35:24
【问题描述】:
我正在尝试以 JSON 格式输出一个列表,但它并没有按照我想要的方式输出。
这是输出:
{
"songMap": [
{
"SID": "699",
"SDID": "1079287588763212246"
},
{
"SID": "700",
"SDID": "1079287588763212221"
},
{
"SID": "701",
"SDID": "1079287588763212230"
}
]
}
这是我想要的样子:
[
{
"SID": "699",
"SDID": "1079287588763212246"
},
{
"SID": "700",
"SDID": "1079287588763212221"
},
{
"SID": "701",
"SDID": "1079287588763212230"
}
]
我不需要也不想要中间数组,我不确定为什么要添加它。我有一个自定义类如下:
public class songID {
public int SID;
public String SDID;
public songID() {}
public songID(int key, String value) {
this.SID = key;
this.SDID = value;
}
}
这是它的序列化方式:
Gson gson = new Gson();
String json = gson.toJson(songMap);
如果我打印出字符串 json ,它看起来就是我想要的样子。然而,服务器正在添加额外的“SongMap”。这是我的变量在类顶部声明的方式:
private List<songID> songMap;
.....
songMap = new ArrayList<songID>();
【问题讨论】:
-
songMap 本身,其中包含许多 songID 对象
-
似乎有(非便携式)方法可以将 JAX-RS 配置为不这样做(请参阅链接的其他问题),但如果您也控制客户端,那么只需在客户端打开响应。
-
@Thilo 谢谢你的链接,这不是什么大不了的事,我可以在客户端上管理它,只是觉得这是一种奇怪的行为。如果您使用此解决方案/链接创建答案,我会给您信用。