我创建这是使用PHP从数组一样寻找
$arr = array(
'jon' => array('beef', 'pork'),
'jane' => array('chicken', 'lamb')
);
$tags = json_encode($arr);
产生像
tags = {"jon":["beef","pork"],"jane":["chicken","lamb"]};
一个JSON对象,我要检查,如果事情是在一个JSON对象的属性非此即彼。这些都不似乎工作,但像
if('lamb' in tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}
写道:NO控制台
if('foo' in tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}
还写道NO控制台
所以看着
typeof(tags.jane);
it表明它是一个"object"
但
console.log(tags);
显示以下内容:
Object
jane: Array[2]
0: "chicken"
1: "lamb"
length: 2
__proto__: Array[0]
jon: Array[2]
0: "beef"
1: "pork"
length: 2
__proto__: Array[0]
__proto__: Object
,所以我想也许tags.jane
实际上可能是一个数组,并试图
if($.inArray('lamb', tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}
其中写道:YES到控制台但是
if($.inArray('foo', tags.jane)) {
console.log('YES');
} else {
console.log('NO');
}
也将YES写入控制台。
我错误地构建了JSON对象吗?没有正确定位价值?任何意见是极大的赞赏。如果这将作为一个数组而不是一个对象更容易,我完全可以控制它来改变它。我只是有点难以理解我应该如何对待这一点。
使用JSON.parse(jsonString)将服务器响应转换为javascript对象。 – 2012-04-06 18:34:11
+1,用于彻底展示您尝试的内容。 – 2012-04-06 18:41:52
对不起,我没有提到我解析js中的JSON,但无论哪种方式,塞尔吉奥(和其他人)给了我我需要的东西。谢谢大家!出于好奇,为什么tags.jane和tags.jon数组而不是“嵌套对象”在JSON中是不可能的?当我开始这个时,我想我会做一个检查,如果(tags.jane.chicken)期望它返回true或false,如果该属性存在。我显然需要做一些阅读JSON对象。 :P再次感谢所有那些插话。 – ocergynohtna 2012-04-06 18:49:59