如何在js中读取json对象

时间:2013-01-25 09:39:03

标签: javascript jquery json

我的控制器有一个方法,它将jsonArray的字符串表示形式返回为

jsonArray.toString()

现在以下是ajax方法

function loadPropertyFile(url) {
$.ajax({
    type: "GET",
    url: url, 
    dataType: "text",
    success: function(response){
        var obj = jQuery.parseJSON(response);
        alert(obj);
    }
});

}

解析后的变量obj出现

"[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}]"

现在我想访问js

中键的值

即。我想访问键“displaytag.tracking.id”

的值

问题是当我在做 console.log(obj [0] [“portal.home”]); 它给我错误 TypeError:obj [0]未定义< /强>

我该怎么办?

4 个答案:

答案 0 :(得分:3)

首先,您需要将 JSON字符串解析为JavaScript对象,然后访问所需的属性:

var obj = JSON.parse(json);
console.log(obj[0]["portal.home"]);

在没有本机JSON支持的旧版浏览器中,你应该使用像Crockford的json2.js这样的东西,它会给你一个;请不要在JSON上使用eval(),因为它可能会导致非常糟糕的事情。

答案 1 :(得分:1)

使用$.parseJSON(或现代浏览器中的JSON.parse)将字符串转换为Javascript对象:

var json = '[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}]';
var object = $.parseJSON(json);

在您的情况下,您的JSON字符串将创建一个数组,因此您需要以正确的索引获取对象:

var portalHomeValue = object[0]["portal.home"];

答案 2 :(得分:0)

如果您的javascript源代码中直接使用了JSON(我没有假设,但我正在为其他人添加),您可以删除引号,javascript会根据它创建一个对象:

var obj = [{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}];
console.log(obj[0]["portal.home"]);

答案 3 :(得分:0)

您可以通过以下

直接访问
var data = JSON.parse('[{"Item_Number":"M71118LHB","Description":"MENS ONESIE"}]');
var desc = data[0].Description;
console.log(desc);