2

Here is my JSON which I need to parse:

{"opcode":"groupdetails",
 "status":"success",
 "data":[{"Group ID":5,"Group Name":"data structure","Group Subject":"computer science","Role Type":"Teacher"},{"Group ID":4,"Group Name":"information technology","Group Subject":"computer science","Role Type":"Student"},{"Group ID":6,"Group Name":"data mining","Group Subject":"computer science","Role Type":"Parent"},{"Group ID":7,"Group Name":"dccn","Group Subject":"computer science","Role Type":"Teacher"}]}

I have tried and implemented the solution provided here and this is the implementation of JS that was defined in there solution, which parses only the JSON array

for (var i = 0; i < data.data.length; i++) 
 {
    var object = data.data[i];
     for (property in object) 
     {
        var value = object[property];
        alert(property + "=" + value);
     }
 }

the outer JSON data is returned from server and yes I have tried parsing using the following code and there is no result:

for (var i = 0; i < data.length; i++) 
{
 var object = data[i];
 for (property in object) 
 {
    var value = object[property];
    alert(property + "=" + value);
 }
}

How can I parse the entire JSON using a single method instead of parsing the JSON array separately?

2
  • parse it into what? html, array or ?? Commented Jun 4, 2012 at 12:42
  • parse into html, further processing is yet to be done first i need to be sure that parsing is done properly. Commented Jun 4, 2012 at 12:44

3 Answers 3

3

Try this:

for(var key in data) {
    if(typeof data[key] === "object") {
        for(var i = 0; i < data[key].length; i++) {
            for(var property in data[key][i]) {
                 alert(property + " = " + data[key][i][property]);
            }
        }
    } else if(typeof data[key] === "string") {
        alert(key + " = " + data[key]);
    }
}
Sign up to request clarification or add additional context in comments.

3 Comments

it works fine but it shows 0 =[object Object], 1 =[object Object], 2 =[object Object] and 3 =[object Object] for data array
What is this key will be any field name in the json data?
Please use proper english and I might answer your question.
1

If your data is a JSON string, you need to decode it to object first. Use JSON.parse.

Comments

0

I was able to access each value on my multilevel array:

{"dirArray":[{"Dir":{"name":"hr12325","dir_description":"B2B NFIB Field","id":"249"}},{"Dir":{"name":"klk","dir_description":"B2B NFIB klk","id":"251"}}]}

using

data.dirArray[0].Dir.name
data.dirArray[0].Dir.dir_description

as explained here.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.