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

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.