javascript - How to look for a particular property in an JSON and retrieve a corresponding property -
this question has answer here:
- access / process (nested) objects, arrays or json 15 answers
- use jquery's find() on json object 6 answers
i trying access particular property of object , 'levelid' in following code.
this have far
the code goes this
$(document).ready(function(){ var jsonlist = { "json_data": { "data": [ { "data": "a node", "metadata": { "id": "23" }, "children": [ "child 1", "a child 2" ] }, { "attr": { "id": "li.node.id1", "levelid": "3", "fmnname": "ragini" }, "data": { "title": "long format demo", "attr": { "href": "#" } }, "children": [ { "data": { "title": "hq 50 corps" }, "attr": { "id": 102, "parentid": 101, "fmnid": 194, "fmnname": "pivot corps", "levelid": 1, "name": "hq 50 corps ", "ishq": "\u0000", "susnum": "0415009a", "modtype": "plain", "seniorityid": 1, "wepenum": "hq-38 4001/1946/8 (3 div)", "reliefid": 0, "targetreliefid": 0, "groupid": 0, "realorbatdtlid": 0, "imgname": "10", "overlayid": "0415009a", "symbolcode": "1001001", "locationname": "bhatinda", "nrsname": "bhatinda" }, "state": "open" } ] }, { "attr": { "id": "li.node.id1", "levelid": "3", "fmnname": "rag" }, "data": { "title": "long format demo", "attr": { "href": "#" } } }, { "attr": { "id": "li.node.id1", "levelid": "4", "name": "skyrbe" }, "data": { "title": "long format demo", "attr": { "href": "#" } } } ] } } console.log(json.stringify(jsonlist,null,4)); var newobject = jsonlist.json_data.data; var listitems= ""; $form = $("<form></form>"); $('#form_container').append($form); var $selectcontainer = $("<select id=\"selectid\" name=\"selectname\" />"); (var = 0; < jsonlist.json_data.data.length; i++) { if(jsonlist.json_data.data[i].hasownproperty("attr") && jsonlist.json_data.data[i].attr.levelid == 3) { listitems+= "<option value='" + jsonlist.json_data.data[i].attr.fmnname + "'>" + jsonlist.json_data.data[i].attr.fmnname + "</option>"; } } $($selectcontainer).html(listitems); $($form).append($selectcontainer); }); the above code capable of retrieving levelid if in json_data -> data -> attr. , levelid might nested inside json_data -> data -> children -> attr. how go iterating through object fetch levelid if it's nested deep inside.
use nested loop:
var data = jsonlist.json_data.data; (var = 0; < data.length; i++) { var children = data[i].children; if (typeof children == 'object') { (var j = 0; j < children.length; j++) { var levelid = children[j].attr.levelid; // child's levelid } } }
Comments
Post a Comment