我通过rest webservice MediaType属性
创建JSON@GET
@Produces(MediaType.APPLICATION_JSON)
public Issues getAllOpenPoints() {
我使用jackson jar创建JSON响应。所以不要手动创建JSON但仍然在尝试通过jquery解析此响应时。它会抛出无效的特征错误。
$.parseJSON(result);
在从其余的webservice返回之前,是否需要对对象中的数据进行编码或转义。但接下来是杰克逊使用自动回复转换的意义。
答案 0 :(得分:0)
我相信我知道JSON解析中的问题是什么,但仍然在寻找原因。问题是由于我拥有的对象图的结构。
以下是我开始使用的XML ..
<issues>
<issue>
<product>XXXX</product>
<dateReported>XXXX</dateReported>
<Summary>XXXX</Summary>
<status>XXXX</status>
<responsiblePerson>XXXX </responsiblePerson>
<targetCompletionDate>XXXX</targetCompletionDate>
<completionDate>XXX</completionDate>
<application>XXXX</application>
<priority>XXXX</priority>
<Comments>
<comment>
<date>XXXXX</date>
<description>XXXXX</description>
</comment>
<comment>
<date>XXXXX</date>
<description>XXXXX</description>
</comment>
</Comments>
</issue>
......
......
</issues>
Issue Class包含一个Comments类型的对象,而comments对象包含一个对象类型注释列表。 如果我首先创建JAVA对象而不是XML,那么我会保留一个&#34; Comment&#34;在Issue类而不是一个额外的注释Object。
现在这导致了JSON。
{
"issue": [
{
"product": "XXXXX",
"dateReported": "XXXXX",
"Summary": "XXXXX",
"status": "XXXXX",
"responsiblePerson": "XXXXX",
"targetCompletionDate": "XXXXX",
"completionDate": "XXXXX",
"application": "XXXXX",
"priority": 1,
"Comments":{
"comment":[
{
"date": "XXXXX",
"description": "XXXXX"
},
{
"date": "XXXXX",
"description": "XXXXX"
}
]
}
}
]
}
如果我编辑JSON并尝试在示例JS文件中解析以下JSON。一切正常。
{
"issue": [
{
"product": "XXXXX",
"dateReported": "XXXXX",
"Summary": "XXXXX",
"statu??s": "XXXXX",
"responsiblePerson": "XXXXX",
"targetCompletionDate": "XXXXX",
"??completionDate": "XXXXX",
"application": "XXXXX",
"priority": 1,
"Comments": [
{
"date": "XXXXX",
"description": "XXXXX"
},
{
"date": "XXXXX",
"de??scription": "XXXXX"
}
]
}
]
}
但是第一个JSON也是一个有效的对象表示。为什么在解析它时抛出异常?