JSON对象属性显示为";0“;在javascript中
我有一些服务器端方法返回一个JSON对象,我的JS解析该对象,并尝试通过属性枚举该对象,以使用与属性值相同的名称设置输入。我的应用程序在ASP.NETMVC5中,JSON工作正常 这是我的JS:JSON对象属性显示为";0“;在javascript中,javascript,c#,jquery,json,asp.net-mvc,Javascript,C#,Jquery,Json,Asp.net Mvc,我有一些服务器端方法返回一个JSON对象,我的JS解析该对象,并尝试通过属性枚举该对象,以使用与属性值相同的名称设置输入。我的应用程序在ASP.NETMVC5中,JSON工作正常 这是我的JS: function ProcessPropertyChange(url, name) { var val = $("[name='" + name + "'").val(); url = url + "&propValue=" + val; $.get(url, functi
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":""}]
这是从我的代码中提取的
当我在开发人员控制台中查看我的对象时,我可以看到具有正确的名称、FullAddress和ParentName的属性,但是当我尝试通过它们进行枚举时,返回“0”,并且obj[prop]的值始终是[object object]
有什么想法吗?如果需要,可以发布更多代码
谢谢 obj
是一个数组,它的成员是一个对象,因此该对象的索引为0…length-1,这就是得到0的原因
如果您希望数组只有1个值,那么不要返回数组,而是返回对象,否则在js代码中从数据的0
th索引中读取对象。您还可以像这样使用$.each()
可能是输入错误,但示例代码中缺少结尾“]”:$(“[name=”+prop+“]”)。text=obj[prop]
我想知道您是否真的需要var obj=JSON.parse(数据)代码>。您正在使用对象数组
$.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');