5

i have the following JSON response, but i am not sure how to properly loop trough it and use.

{
  "ID": 1,
  "Name": "dept1",
  "Categories": [
    {
      "ID": 1,
      "Name": "catg1"
    },
    {
      "ID": 2,
      "Name": "catg2"
    }
  ]
}

following code alerts me the departmentID which is 1, then its name 'dept1', then this: '[object Object],[object Object]'

$.getJSON("mainPage2.aspx", function(result) {
   $.each(result, function(i, item) {
      alert(this);
   });
});

all i want to do is to create a div using department info, and create another div inside it which includes the information of categories that belong to that deparment.

2 Answers 2

7

Well, its showing its getting the object alright, have you tried

    $.getJSON("mainPage2.aspx", function(result) {
   $.each(result, function(i, item) {
      alert(item.Name);
   });
});

Item being the object passed through from the each function it should pick this up and alert out 'dept1' or whatever the text is set

if you want to loop through the categories then do another loop i.e.

    $.getJSON("mainPage2.aspx", function(result) {
   $.each(result, function(i, item) {
      alert(item.Name);
        $.each(item.Categories, function(i, cat) {
           alert(cat.Name)
        }
   });
});
Sign up to request clarification or add additional context in comments.

1 Comment

your solution makes sense, but returns "undefined".
4
for(var key in result) {
    var value = result[key];
    if(typeof value == 'object') {
        if(value instanceof Array) {
            // an array. loop through children
            for(var i = 0; i < value.length; i++) {
                var item = value[i];
            }
        } else {
            // complex object, not array. inner for loop on keys?
        }
    } else {
        // regular string/number etc. just print out value?
    }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.