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 に答える