这是我的JSON对象:
{ text: 'stuff',
user: 'user1
}
当我运行typeof jsonObj
时,我得到object
。当我运行jsonOb.length
时,我得到了未定义。当我尝试通过text
访问console.log(jsonObj.text)
属性时,我得到了未定义。
那么如何才能正确访问JavaScript中的所有内容?
我不想使用jQuery,因为这是所有node.js
编程所以它是服务器端。
更新 - 完整的JSON
{ text: '@junk_666 おかえりか',
user:
{ display_name: 'mono',
screen_name: 'monochrm',
klout_score: null,
location_str: '画面の前',
utc_offset: '32400' },
venue_id: 1304409836517,
match_type: 'twitter',
tweet_id: '116494264137023489',
created_at_unix: 1316609371,
meta:
{ matchedPhrase: 'junk',
venueName: 'deletemepls really long name' },
tags: [ '' ],
indexed_at_unix: 1316609416 }
答案 0 :(得分:1)
json似乎无效
{
"text": "stuff",
"user": "user1"
}
答案 1 :(得分:1)
我将您的对象复制并粘贴到FireBug控制台中,然后识别出来。
如果需要计算键/值对的数量,可以使用这样的函数来执行此操作:
function numMembers(o) {
var i=0;
for (a in o) {
i++;
}
return i;
}
您应该能够通过jsonObj.text访问text属性的值。你确定你的对象被jsonObj引用了吗?另外,您是否可以访问更简单对象的值,例如创建它们时在其他帖子中提到的值?此外,如果您只使用ASCII字符,有什么用处吗?出于某种原因,它可能无法正确处理一些非拉丁字符。
答案 2 :(得分:1)
首先,你拥有的不是JSON,因为JSON要求属性名称是双引号。它是一个有效的JavaScript对象文字,所以我假设你正在使用它。
其次,JavaScript对象通常没有length
属性。阵列。
您的对象文字没有问题,因此代码中的其他地方一定存在其他问题。
答案 3 :(得分:0)
试试这个:
{ text: 'stuff',
user: 'user1'
}
你离开了撇号。
现在您已经发布了完整的JS代码(这不是JSON,正如@josnidhin指出的那样)...在jsFiddle中正常工作。 http://jsfiddle.net/Rs9R4/我不相信JS对象有.length,只有Arrays。