2

以下是我的控制器,它返回字符串

@RequestMapping("/hello1")  
    public @ResponseBody  
        String hello1() {  
           String jsonString = "[{\"deviceId\": \"  e71b0be12218393e121cb728595af68995889fb9\",\"deviceName\": \"  Xcaliber?s iPad3\",\"serialNumber\": \"  DMPH9E74DJ8R\",\"modelNumber\": \"  MC706\",\"productType\":\"  iPad3,1\",\"deviceClass\": \"  iPad\"},{\"deviceId\": \"\", \"deviceName\": \"\",\"serialNumber\": \"\",\"modelNumber\": \"\",\"productType\": \"\",\"deviceClass\": \"\"}]";
return jsonString;
} 

我在 javascript 中得到这个字符串作为响应。我正在尝试在 javascript 中使用以下代码

var deviceJsonDetails = $.parseJSON(response);
         for(var count = 0;count < response.length; count++){
                             var id = count+1;
                             alert(deviceJsonDetails[count].deviceId);
                             $("#deviceId"+id).html(deviceJsonDetails[count].deviceId);
                             $("#deviceName"+id).html(deviceJsonDetails[count].deviceName);
                             $("#serialNumber"+id).html(deviceJsonDetails[count].serialNumber);
                             $("#modelNumber"+id).html(deviceJsonDetails[count].modelNumber);
    }

但它在var deviceJsonDetails = $.parseJSON(response); Error: SyntaxError: JSON.parse: expected property name or '}'上给出错误

您能告诉我在 js 中解析相同字符串的错误或替代解决方案在哪里吗?

4

1 回答 1

2

在http://jsonlint.com/检查您的 JSON 字符串

您需要解析的正确字符串应该是:删除“\”

[
    {
        "deviceId": "e71b0be12218393e121cb728595af68995889fb9",
        "deviceName": "Xcaliber?siPad3",
        "serialNumber": "DMPH9E74DJ8R",
        "modelNumber": "MC706",
        "productType": "iPad3,1",
        "deviceClass": "iPad"
    },
    {
        "deviceId": "",
        "deviceName": "",
        "serialNumber": "",
        "modelNumber": "",
        "productType": "",
        "deviceClass": ""
    }
]
于 2013-11-11T13:10:32.583 回答