通过javascript在Json中找到价值

mma*_*eti 6 javascript parsing json

我找不到一种方法来使用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"
        }
    }]
};
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样的例子:

alert(myJSONObject.topicos[0].data[0]);
Run Code Online (Sandbox Code Playgroud)

有些身体可以帮助我吗?

json来自Ruby On rails应用程序,使用 render :json => @atividades.to_json

Tks很多!Marqueti

rfu*_*duk 13

你的JSON的格式是这样的,它很难读,但它看起来像你在寻找:

alert( myJSONObject.topicos[0].comment );
Run Code Online (Sandbox Code Playgroud)

这是因为data在给定的对象中没有键...topicos[0],而只是键comment.如果你想要更多的钥匙,那就继续下去:obj.topicos[0].comment.commentable_type.

更新

要找出哪些topicos[0]可以采取几种方法:

  1. 使用开关或如果喜欢:

    var topic = myJSONObject.topicos[0];
    if( topic.hasOwnProperty( 'comment' ) ) {
      // do something with topic.comment
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可能在这里遇到跨浏览器兼容性问题,因此使用像jQuery这样的库会很有帮助,但通常您可以映射这些属性,如下所示:

    for( var key in myJSONObject.topicos[0] ) {
      // do something with each `key` here
    }
    
    Run Code Online (Sandbox Code Playgroud)