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
1 Answer
Reset to default 2Check 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": ""
}
]