2017-07-19 1 views
0

Ich lerne über Javascript und JSON-Objekte und Arrays. Ich habe Aufgabe Iterieren folgende Array gegeben:Wie JSON-Objekt-Array in Javascript und Jquery zu iterieren?

{"6784": 
    {"OD": 
     [ 
      { 
       "od_id":"587641", 
       "cl_type":"scl", 
       "cl_eye":"OD" 
      } 
     ], 
    } 
    {"OS": 
     [ 
      { 
       "od_id":"587641", 
       "cl_type":"scl", 
       "cl_eye":"OD" 
      } 
     ], 
    } 
} 

ich versucht habe, für Schleife und jquery jeder mit einfachen laufen, aber es funktioniert nicht. Voraussetzung ist, dass wir keinen Schlüsselnamen kennen.

+0

Blick in [für ... in] (https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for ... in) –

+0

Zeigen Sie Ihre Bemühungen. – Shubham

+0

try $ .each (yourarray, Funktion (Index, Element) {}) –

Antwort

1

Wenn Sie die Schlüsselnamen nicht kennen, können Sie Object.keys (json_obj) verwenden.

Object.keys(json_obj).forEach(function(key){ 
    stuff 
} 
0

können Sie verwenden:

Object.keys(Obj) 

Eigenschaften auf Ihrem Objekt zu identifizieren und dann über sie iterieren können Werte der Eigenschaften zu finden.

1

Ihr JSON ist kein gültiger JSON. enter image description here

gültig JSON sollte wie: enter image description here

Working Demo

var jsonObj = { 
 
\t "6784": { 
 
\t \t "OD": [{ 
 
\t \t \t "od_id": "587640", 
 
\t \t \t "cl_type": "scl", 
 
\t \t \t "cl_eye": "OD" 
 
\t \t }], 
 
\t \t "OS": [{ 
 
\t \t \t "od_id": "587641", 
 
\t \t \t "cl_type": "scl", 
 
\t \t \t "cl_eye": "OD" 
 
\t \t }] 
 
\t } 
 
}; 
 

 
var keys = Object.keys(jsonObj); 
 
for (var i in keys) { 
 
    var innerKeys = Object.keys(jsonObj[keys[i]]); 
 
    for (var j in innerKeys) { 
 
    console.log(jsonObj[keys[i]][innerKeys[j]][0].od_id); 
 
    } 
 
}

0
**index.html** 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Document</title> 


</head> 
<body> 

<div id="content"></div> 



<script 
src="https://code.jquery.com/jquery-3.2.1.min.js" 
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" 
crossorigin="anonymous"></script> 

<script src="js/main.js"></script> 

</body> 
</html> 



**js/main.js** 

$(document).ready(function(){ 

console.log(data) 

function parse(data){ 

for (var item in data['6784']) { 
    for (var i = 0; i < data['6784'][item].length; i++) { 
     var od_id = data['6784'][item][i].od_id; 
     var cl_type = data['6784'][item][i].cl_type; 
     var cl_eye = data['6784'][item][i].cl_eye; 

     console.log(item + ', ' + od_id + ', ' + cl_type + ', ' + cl_eye); 

     $("#content").append(
     '<div class="row">'+ 
     '<p><span class="item">item: </span> ' + item + '</p>'+ 
     '<p><span class="item">od_id: </span> ' + od_id + '</p>'+ 
     '<p><span class="item">cl_type: </span> ' + cl_type + '</p>'+ 
     '<p><span class="item">cl_eye: </span> ' + cl_eye + '</p>'+ 
     '</div> <br>' 
    ); 

    } 
    } 

} 

$.ajax({ 
url: 'data.json', 
dataType: "json", 
success: parse, 

}); 
}); 





**data.json** 

{"6784": 
    {"OD": 
     [ 
      { 
       "od_id":"587641", 
       "cl_type":"scl", 
       "cl_eye":"OD" 
      } 
     ], 
    "OS": 
     [ 
      { 
       "od_id":"58764-2", 
       "cl_type":"scl-2", 
       "cl_eye":"OS" 
      } 
     ] 
    } 
} 
+0

u sollte Vergleichen Sie JSON und meine JSON-Daten und dann können Sie alle meine Codes verwenden. – memre