簡體   English   中英

需要幫助遍歷Javascript中的JSON對象

[英]Need help traversing JSON object in Javascript

我有調用WCF服務並向客戶端返回JSON字符串的代碼。 以下是我試圖用來解析JSON但無法弄清楚如何遍歷的javascript函數。

這是功能

loadDropDown: function(result, ddl, defaultItem) {
    var _data = result.get_object();
    //Sys.Serialization.JavaScriptSerializer.deserialize(result, true);

    this.clearDropDown(ddl);
    this.createOption(ddl, defaultItem, '');
    for (var i = 0; i < _data.length; i++) {
        var _item = _data[i];
        var _option = this.createOption(ddl, _item.Text, _item.Value);
    }
    ddl.disabled = false;
}

這是JSON

{
     "d": "[{\"Attributes\":{\"Keys\":[],\"Count\":0,\"CssStyle\":{\"Keys\":[],\"Count\":0,\"Value\":null}},\"Enabled\":true,\"Selected\":false,\"Text\":\"Lexus\",\"Value\":\"Lexus\"},{\"Attributes\":{\"Keys\":[],\"Count\":0,\"CssStyle\":{\"Keys\":[],\"Count\":0,\"Value\":null}},\"Enabled\":true,\"Selected\":false,\"Text\":\"Acura\",\"Value\":\"Acura\"}]"
}

關於為什么這不起作用的任何建議? 注意:我沒有在解決方案中使用jquery。

您不應該生成該json。 相反,您應該輸出

{
     "d": [{"Attributes":{"Keys":[],"Count":0,"CssStyle":{"Keys":[],"Count":0,"Value":null}},"Enabled":true,"Selected":false,"Text":"Lexus","Value":"Lexus"},{"Attributes":{"Keys":[],"Count":0,"CssStyle":{"Keys":[],"Count":0,"Value":null}},"Enabled":true,"Selected":false,"Text":"Acura","Value":"Acura"}]
}

(從"d"值中刪除引號)

在將json對象放入json對象之前,沒有理由將其轉換為字符串! 只需將json直接放入。

您需要先將eval(_data)用作javascript數組。

例如:

var _rawdata = result.get_object();
var _data = eval(_rawdata);
//Sys.Serialization.JavaScriptSerializer.deserialize(result, true);

this.clearDropDown(ddl);
this.createOption(ddl, defaultItem, '');
for (var i = 0; i < _data.length; i++) {
    var _item = _data[i];
    var _option = this.createOption(ddl, _item.Text, _item.Value);
}
ddl.disabled = false;

您應該能夠只對對象進行eval() (或使用Crockford的JSON解析 )並以常規對象表示法訪問屬性。 不過,您可能需要先取消轉義標識符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM