/ / Erstellen Sie aus JSON dynamische verschachtelte Listen mit jQuery - Javascript, Jquery, Json

Erstellen Sie eine dynamische geschachtelte Liste aus JSON mit jQuery - javascript, jquery, json

Ich habe ein Problem damit, dieses Problem zu verstehen. Ich habe diesen Json in einer Datei namens list.json zu Testzwecken. Ich werde diese Liste später vom Server erhalten.

[
{
name    : "ABC",
id      : "link_abc"
},
{
name    : "DEF",
id      : "link_def"
},
{
name    : "GHI",
id      : "link_ghi"
},
{
name    : "JKL",
id      : "link_jkl"
}

]

Und hier ist mein Javascript, um die Liste in anzuzeigen <li> Format.

$(function(generate_list_from_JSON){
$("a[href="#state"]").click(function(){
$.getJSON("scripts/list.json", function (obj){
$.each(obj.name, function (key, value){
alert(key);
})
});
});
});

Das Problem ist, es wird nichts angezeigt, auch nicht in der Konsole. Wie kann ich feststellen, was gesendet und empfangen wird? console.log() aber immer noch leer.

Antworten:

2 für die Antwort № 1

JSON erfordert Anführungszeichen um die Attributnamen. Also musst du so etwas tun:

[
{
"name"    : "ABC",
"id"      : "link_abc"
},
...
]

Für JavaScript-Objekte müssen die Attributnamen nicht in Anführungszeichen gesetzt werden, JSON jedoch.

HTH


1 für die Antwort № 2

Ich sehe wenige Probleme:

  • Ihr JSON-Objekt ist ungültig. Es ist ein Array von Objekten, aber die ersten beiden Objekte werden nicht mit getrennt , und Zeichenfolgen in JSON sollten in Anführungszeichen gesetzt werden.
  • In Ihrem Javascript-Code beziehen Sie sich auf obj.usersund dein Objekt, auch wenn es das hätte ,, hat überhaupt keine Benutzer.

1 für die Antwort № 3

Sie können nicht jede für obj.name ausführen. obj ist ein Array. Arrays haben keine Eigenschaft mit dem Namen "name", und daher werden Sie niemals in die Schleife einsteigen.

Durchlaufen Sie obj [0] bis obj.length-1].