JSON对象属性在javascript中显示为“ 0” - 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的属性,但是,当我尝试通过它们枚举时,它们的属性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');

Javascript和Python JSON-未定义变量 - javascript

例如,如果您具有以下JSON对象(删除python的分号):values = { a: 1, b: { c: 2, d: { e: 3 } }, f: 4, g: 5 }; 如果您尝试在JS中打印values,它将正常工作。但是在Python中,它将返回错误NameError: name 'a' is not defined,这意味着未定…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

如何在JQuery中操作JSONArray - javascript

我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

编码JSON数据以保留json格式 - javascript

由于JSON值是动态生成的,并且其中的值是基于用户输入的,因此,如果用户在字符串中输入了不可接受的字符(如"),则会使json无效。就像是:{ "tag" : "demo", "value": "user " input" } 有没有一种方法可以编码或转义JS…