我的控制器有一个方法,它将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]未定义< /强>
我该怎么办?
答案 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);