Jquery Json解析器显示jersey rest webservice响应的无效字符错误

时间:2015-06-19 21:46:17

标签: jquery json parsing jersey jackson

我通过rest webservice MediaType属性

创建JSON
@GET
@Produces(MediaType.APPLICATION_JSON)
public Issues getAllOpenPoints() {

我使用jackson jar创建JSON响应。所以不要手动创建JSON但仍然在尝试通过jquery解析此响应时。它会抛出无效的特征错误。

$.parseJSON(result);

在从其余的webservice返回之前,是否需要对对象中的数据进行编码或转义。但接下来是杰克逊使用自动回复转换的意义。

1 个答案:

答案 0 :(得分:0)

我相信我知道JSON解析中的问题是什么,但仍然在寻找原因。问题是由于我拥有的对象图的结构。

  • 首先我手动设计了XML。
  • 然后从XML
  • 生成架构
  • 然后使用eclipse从该XSD创建java对象。

以下是我开始使用的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",
         "statu‌​s": "XXXXX",
         "responsiblePerson": "XXXXX",
         "targetCompletionDate": "XXXXX",
         "‌​completionDate": "XXXXX",
         "application": "XXXXX",
         "priority": 1,
         "Comments":{
                ‌​"comment":[
                {
                   "date": "XXXXX",
                   "description": "XXXXX"
                },
                {
                   "date": "XXXXX",
                   "de‌​scription": "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也是一个有效的对象表示。为什么在解析它时抛出异常?