通过 javascript 在 Json 中查找值
Posted
技术标签:
【中文标题】通过 javascript 在 Json 中查找值【英文标题】:Find value in Json by javascript 【发布时间】:2010-12-14 19:29:00 【问题描述】:我找不到使用 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
非常感谢! 马奎蒂
【问题讨论】:
【参考方案1】:您的 JSON 格式很难阅读,但在我看来就像您正在寻找的那样:
alert( myJSONObject.topicos[0].comment );
这是因为...topicos[0]
给出的对象中没有data
键,而只有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
【讨论】:
更进一步,您可以执行以下操作:alert(myJSONObject.topicos[0].comment.commentable_type); 感谢回复。我需要得到关键的“评论”字符串。因为我也可以收到另一种类型。像这样的东西: myJSONObject.topicos[0].people 或者 myJSONObject.topicos[0].support 然后我会做一些 If 来格式化正确的输出。 tks !【参考方案2】:这应该可行:
alert(myJSONObject.topicos[0].comment);
如果你愿意,你可以这样循环:
for (var key in myJSONObject.topicos[0])
alert(key);
if (key == 'comment')
alert(myJSONObject.topicos[0][key]);
【讨论】:
以上是关于通过 javascript 在 Json 中查找值的主要内容,如果未能解决你的问题,请参考以下文章