2009-11-09 12 views
6

Ich kann keinen Weg finden, um diesen Wert ("Kommentar") in Json mit Javascript zu bekommen.Finden Sie Wert in Json von Javascript

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" 
     } 
    }] 
}; 

Ich versuche, ein Beispiel wie folgt aus:

alert(myJSONObject.topicos[0].data[0]); 

Einige Körper kann mir helfen?

Die json ist von Ruby On Anwendung Schienen, mit render :json => @atividades.to_json

Tks viel! Marqueti

Antwort

13

Ihre JSON so formatiert ist, dass es sehr schwer ist, zu lesen, aber es mir sieht aus wie Sie suchen:

alert(myJSONObject.topicos[0].comment); 

Dies ist, weil es keine data Geben Sie das durch ...topicos[0] angegebene Objekt ein, sondern nur den Schlüssel comment. Wenn Sie weitere Tasten hinter sich haben möchten, gehen Sie einfach wie folgt vor: .

aktualisieren

Um herauszufinden, welche Schlüssel in topicos[0] sind Sie ein Paar nähert sich nehmen können:

  1. einen Schalter verwenden, oder wenn wie:

    var topic = myJSONObject.topicos[0]; 
    if(topic.hasOwnProperty('comment')) { 
        // do something with topic.comment 
    } 
    
  2. Sie könnten hier Probleme mit der Browserkompatibilität haben, also verwenden eine Bibliothek wie jQuery wäre hilfreich, aber im Allgemeinen können Sie die Eigenschaften wie so map über:

    for(var key in myJSONObject.topicos[0]) { 
        // do something with each `key` here 
    } 
    
+0

es einen Schritt weiter zu nehmen, Sie so etwas wie tun könnte: ein lert (myJSONObject.topicos [0] .comment.commentable_type); – Mercurybullet

+0

Beat dich daran @Daniel! :) – rfunduk

+0

Tks für die Antworten. Ich brauche den Schlüssel "Kommentar" Zeichenfolge. Weil ich auch einen anderen Typ bekommen kann. In etwa so: myJSONObject.topicos [0] .people ou myJSONObject.topicos [0] .support Und dann werde ich etwas tun, um die richtige Ausgabe zu formatieren. tks! – mmarqueti

1

Dies sollte funktionieren:

alert(myJSONObject.topicos[0].comment); 

Wenn Sie möchten, können Sie eine Schleife durch, wie diese :

for (var key in myJSONObject.topicos[0]) 
{ 
    alert(key); 
    if (key == 'comment') 
    alert(myJSONObject.topicos[0][key]); 
} 
Verwandte Themen