繁体   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