Ошибка чтения строки Json с обратной косой чертой в JavaScript - PullRequest
0 голосов
/ 23 января 2012

Я преобразовал класс C # в объект Json после того, как я его строковым образом преобразовал в этот объект json, затем он конвертирует с обратной косой чертой (экранирующий символ), и когда я использовал следующий код для чтения строки json, он дает мне неопределенное сообщение в оповещении.

<script>



    var jsString = { "JsonString": ["{\"reachoutid\":1,\"user_ID\":1,\"question\":\"Best CMS in Microsoft  .Net\",\"anonymous\":false,\"shared\":false,\"create_date\":\"\\/Date(-62135596800000)\\/\",\"update_date\":\"\\/Date(1327300086183)\\/\",\"status\":0,\"start_date\":\"\\/Date(-62135596800000)\\/\",\"end_Date\":\"\\/Date(-62135596800000)\\/\",\"reachoutfactorsList\":null,\"reachoutchoicesList\":[{\"reachoutid\":0,\"choice_ID\":4,\"orders\":0,\"description\":\"Sitecore\",\"preachOutID\":0,\"pchoice_ID\":4,\"porders\":0,\"pdescription\":\"Sitecore\"},{\"reachoutid\":0,\"choice_ID\":5,\"orders\":0,\"description\":\".Net Nuke \",\"preachOutID\":0,\"pchoice_ID\":5,\"porders\":0,\"pdescription\":\".Net Nuke \"},{\"reachoutid\":0,\"choice_ID\":6,\"orders\":0,\"description\":\"Drupal\",\"preachOutID\":0,\"pchoice_ID\":6,\"porders\":0,\"pdescription\":\"Drupal\"}],\"detail\":\"Write more text to check progress bar work properly.\",\"set_Listof_Tags\":null,\"tag\":null,\"get_Listof_Tags\":null,\"userstatus\":null,\"actType\":\"RO\"}"], "_getList_MyActivities": null, "_getList_MyPeersActivities": null, "userID": 1 }

    for (i = 0; jsString.JsonString.length > i; i++) 
    {

        alert(jsString.JsonString[i].reachoutid);

        //"Giving Undefined Message "

    }

</script>

Ответы [ 2 ]

2 голосов
/ 23 января 2012

Ваш JSON хранится как строка, а не как собственный объект. Чтобы преобразовать его обратно, измените строку alert( ... ) на JSON.parse( ... ) следующим образом:

    alert( JSON.parse(jsString.JsonString[i]).reachoutid )
0 голосов
/ 23 января 2012

Ваш JSON не должен быть в кавычках. Когда это так, JS интерпретирует как строку вместо объекта

var jsObject = { "JsonString": [{"reachoutid":1,"user_ID":1,"question":"Best CMS in Microsoft  .Net","anonymous":false,"shared":false}]} // etc.
...