最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Unable to parse json String in javascript which is response of java method - Stack Overflow

programmeradmin0浏览0评论

Following is my controller which returns String

@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;
} 

I am getting this string as response in javascript. and I am trying follwing code in 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);
    }

But it is giving error on var deviceJsonDetails = $.parseJSON(response); Error: SyntaxError: JSON.parse: expected property name or '}'

Can you please tell me where is the fault or any alternate solution to parse same string in js?

Following is my controller which returns String

@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;
} 

I am getting this string as response in javascript. and I am trying follwing code in 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);
    }

But it is giving error on var deviceJsonDetails = $.parseJSON(response); Error: SyntaxError: JSON.parse: expected property name or '}'

Can you please tell me where is the fault or any alternate solution to parse same string in js?

Share Improve this question edited Nov 11, 2013 at 13:19 Swapnil Walivkar asked Nov 11, 2013 at 12:54 Swapnil WalivkarSwapnil Walivkar 2953 gold badges5 silver badges15 bronze badges 5
  • "But it is giving error" - what error? – Eel Lee Commented Nov 11, 2013 at 12:57
  • Error: SyntaxError: JSON.parse: expected property name or '}' – Swapnil Walivkar Commented Nov 11, 2013 at 12:59
  • 1 could you add it to your post? It's important part of a question. Thanks :) – Eel Lee Commented Nov 11, 2013 at 13:04
  • stackoverflow./questions/8013582/… – Shahe Masoyan Commented Nov 11, 2013 at 13:07
  • Check what server returning in HTTP response (Developer Tools in Chrome, Firebug Plugin in Firefox for example) and check if syntax is corrct by using JSONLint web site validator for example. – Serhiy Commented Nov 11, 2013 at 13:10
Add a ment  | 

1 Answer 1

Reset to default 2

Check your JSON string in http://jsonlint./

The correct string that you need to parse should be: Remove the "\"

[
    {
        "deviceId": "e71b0be12218393e121cb728595af68995889fb9",
        "deviceName": "Xcaliber?siPad3",
        "serialNumber": "DMPH9E74DJ8R",
        "modelNumber": "MC706",
        "productType": "iPad3,1",
        "deviceClass": "iPad"
    },
    {
        "deviceId": "",
        "deviceName": "",
        "serialNumber": "",
        "modelNumber": "",
        "productType": "",
        "deviceClass": ""
    }
]
发布评论

评论列表(0)

  1. 暂无评论