簡體   English   中英

JSON對象屬性在JavaScript中顯示為“ 0”

[英]JSON object properties display as “0” in javascript

我有一些服務器端方法返回一個JS對象解析的JSON對象,並嘗試通過屬性枚舉以將輸入設置為與屬性值相同的名稱。 我的應用程序在ASP.Net MVC 5中,並且JSON正常工作。

這是我的JS:

function ProcessPropertyChange(url, name)
{
   var val = $("[name='" + name + "'").val();
   url = url + "&propValue=" + val;

    $.get(url, function (data) {
        var obj = JSON.parse(data);
        for (var prop in obj)
        {
            if(obj.hasOwnProperty(prop))
            {
                $("[name='" + prop + "'").text = obj[prop];
                alert(prop);
            }
        }
    });
}

JSON字符串示例為:

[{"FullAddress" : "123 w. oak", "ParentName":""}]

那是從我的代碼中獲取的。

在開發人員控制台中查看對象時,可以看到具有正確names, FullAddress and ParentName的屬性names, FullAddress and ParentName ,但是當我嘗試通過它們枚舉時,它returns "0" and the value of obj[prop] is always [Object object]

有任何想法嗎? 如果需要,可以發布更多代碼。

謝謝!

obj是一個以對象為成員的數組,因此該對象的索引為0 ... length-1,這就是為什么您獲得0的原因。

如果您期望數組只有1個值,則不返回數組而是返回對象,否則在您的js代碼中,從數據的第0個索引讀取對象。 你也可以像這樣使用$ .each()

$.get(url, function (data) {
    //since data is an array
    var obj = data[0];
    $.each(obj, function (value, prop) {
        $("[name='" + prop + "'").text = value;
        alert(prop);
    })
}, 'json');

暫無
暫無

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

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