这可能很简单,但我需要访问此JSON对象中的值。我不知道怎么做。这是对象:
{
"COLUMNS": ["NAME"],
"DATA": [["YOUNG, MARIA "]]
}
我希望“obj.NAME”会这样做,但它说这是未定义的。这是我的AJAX电话:
$.ajax({
//this is the php file that processes the data and send mail
url: 'components/Person.cfc',
//GET method is used
type: "POST",
//pass the data
data: {
method: "getGroup",
uid: $('#cardText').val()
},
success: function(response) {
var obj = $.trim(response);
var obj = jQuery.parseJSON(obj);
$('#form_result').html(obj.NAME);
},
答案 0 :(得分:2)
在您的代码中,以下示例显示了如何访问此特定JSON对象中的属性:
alert( obj.COLUMNS[0] ); // alerts the string "NAME".
alert( obj.DATA[0][0] ); // alerts "YOUNG, MARIA "
要理解为什么这是输出,理解并学习阅读构成JSON的符号非常重要:
{} = object
[] = array
你的JSON:
{
"COLUMNS": ["NAME"],
"DATA": [["YOUNG, MARIA "]]
}
由于最外面的部分用花括号表示,我们知道JSON代表一个对象,而不是一个数组。该对象有两个属性,两个属性都是数组,因为分配给它们的值用括号括起来。
第二个属性DATA实际上是一个大小为1的数组,它包含另一个大小为1的数组,其中包含一个字符串。
最后,在您的代码中,您尝试访问NAME,这是一个值,而不是属性。 JSON关于JSON的最后一点是所有对象都由键/值对表示。您使用密钥来访问该值。 obj.COLUMNS检索第一个数组,obj.DATA检索第二个数组。
NAME不是属性。相反,它是分配给数组的值。
为了帮助您学习如何访问JSON,请练习访问不同对象的属性。此外,您可以将现有对象转换回JSON并在控制台中显示它们,以便您可以看到它们在JSON中的结构:
var your_object = new Object();
your_object.name = "Bob";
your_object.skills = ["programmer","debugger","writer"];
console.info( JSON.stringify( your_object ) );
// this would convert the object to JSON. Going the other direction could help
// you further understand the concepts under the hood. Here is the output:
{ "name" : "Bob", "skills" : [ "programmer" , "debugger" , "writer" ] }
答案 1 :(得分:0)
一旦你通过parseJSON运行你的对象,你将拥有一个有两个孩子的对象
myObj = parseJSON (yourJSONStringAbove);
myObj.COLUMNS ; // this is an array containing one item whose value is "name"
myObj.DATA; // this is an array of arrays, it contains one array which has one value
so, myObj.data[0][0] ; // this is "YOUNG, MARIA "