我找不到一种方法可以使用javascript将此值(“注释”)添加到json中。
var myJSONObject = {
"topicos": [{
"comment": {
"commentable_type": "Topico",
"updated_at": "2009-06-21T18:30:31Z",
"body": "Claro, Fernando! Eu acho isso um extremo desrespeito. Com os celulares de hoje que at\u00e9 filmam, poder\u00edamos achar um jeito de ter postos de den\u00fancia que receberiam esses v\u00eddeos e recolheriam os motoristas paressadinhos para um treinamento. O que voc\u00ea acha?",
"lft": 1,
"id": 187,
"commentable_id": 94,
"user_id": 9,
"tipo": "ideia",
"rgt": 2,
"parent_id": null,
"created_at": "2009-06-21T18:30:31Z"
}
}]
};
我正在尝试这样的例子:
alert(myJSONObject.topicos[0].data[0]);
有些人可以帮助我吗?
json来自Ruby On rails应用程序,使用render :json => @atividades.to_json
很多! Marqueti
答案 0 :(得分:13)
您的JSON格式化方式非常难以阅读,但它在我看来就像您在寻找:
alert( myJSONObject.topicos[0].comment );
这是因为data
给出的对象中没有...topicos[0]
个键,而只是键comment
。如果您想要更多密钥,请继续:obj.topicos[0].comment.commentable_type
。
<强>更新强>
要找出topicos[0]
中的 键,您可以采取几种方法:
使用开关或类似:
var topic = myJSONObject.topicos[0];
if( topic.hasOwnProperty( 'comment' ) ) {
// do something with topic.comment
}
您可能在此处遇到跨浏览器兼容性问题,因此使用像jQuery这样的库会很有帮助,但一般情况下您可以映射这些属性,如下所示:
for( var key in myJSONObject.topicos[0] ) {
// do something with each `key` here
}
答案 1 :(得分:1)
这应该有效:
alert(myJSONObject.topicos[0].comment);
如果你想要,你可以像这样循环:
for (var key in myJSONObject.topicos[0])
{
alert(key);
if (key == 'comment')
alert(myJSONObject.topicos[0][key]);
}