通过 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 中查找值的主要内容,如果未能解决你的问题,请参考以下文章

我如何使用JavaScript在json中搜索指定的结果[键+值]? [关闭]

键数组,在 json 对象中查找值

使用 Python 在 JSON 中查找值

在python的嵌套json字典中查找一个值

python 使用Python在JSON中查找值

在 json 子句的 where 中查找值