2

Hey guys i want to parse this type of string:

    {"1":
    [
        {"OrderItemId":832,"ItemId":995,"Price":0},
        {"OrderItemId":833,"ItemId":997,"Price":0},
        {"OrderItemId":834,"ItemId":999,"Price":0}
    ],
    "2":
    [
        {"OrderItemId":835,"ItemId":1008,"Price":0},
        {"OrderItemId":836,"ItemId":1057,"Price":0}
    ]
}

its very important for me, so please guys help me.

davidkonrad
  • 83,997
  • 17
  • 205
  • 265
Rikin Thakkar
  • 1,268
  • 3
  • 13
  • 27

6 Answers6

4

Like this, if you want to access the OrderItemId

var test =  {"1":
    [
        {"OrderItemId":832,"ItemId":995,"Price":0},
        {"OrderItemId":833,"ItemId":997,"Price":0},
        {"OrderItemId":834,"ItemId":999,"Price":0}
    ],
    "2":
    [
        {"OrderItemId":835,"ItemId":1008,"Price":0},
        {"OrderItemId":836,"ItemId":1057,"Price":0}
    ]
}

alert(test["1"][0]['OrderItemId']);
alert(test["1"][1]['OrderItemId']);
alert(test["1"][2]['OrderItemId']);

alert(test["2"][0]['OrderItemId']);
alert(test["2"][1]['OrderItemId']);

UPDATE, to iterate trough test with unknown lengths

for (var i=0;i<test["1"].length;i++) {
    alert(test["1"][i]['OrderItemId']);
}

Here with full automatic enumaration

var number, count = 0;
var en = [];
for(number in test) {
    en[count]=number;
    count++;
}
for (var r=0;r<en.length;r++) {
    alert(en[r]);
    for (var i=0;i<test[en[r]].length;i++) {
        alert(test[en[r]][i]['OrderItemId']);
    }
}
davidkonrad
  • 83,997
  • 17
  • 205
  • 265
3

This is JSON. Use this to parse it. (or any other library you preffer, maybe jQuery)

alexandernst
  • 14,352
  • 22
  • 97
  • 197
2

//You can do by this way also :

<script>
    var employees = { "accounting" : [   // accounting is an array in employees.
                                    { "firstName" : "John",  // First element
                                      "lastName"  : "Doe",
                                      "age"       : 23 },

                                    { "firstName" : "Mary",  // Second Element
                                      "lastName"  : "Smith",
                                      "age"       : 32 }
                                  ], // End "accounting" array.                                  
                  "sales"       : [ // Sales is another array in employees.
                                    { "firstName" : "Sally", // First Element
                                      "lastName"  : "Green",
                                      "age"       : 27 },

                                    { "firstName" : "Jim",   // Second Element
                                      "lastName"  : "Galley",
                                      "age"       : 41 }
                                  ] // End "sales" Array.
                } // End Employees


    var output="<ul>";
    for (var i in employees.accounting) {
        output+="<li>" + employees.accounting[i].firstName + " " + employees.accounting[i].lastName + "--" + employees.accounting[i].age+"</li>";
    }
    output+="</ul>";

    var output1="<ul>";
    for (var j in employees.sales) {
        output1+="<li>" + employees.sales[j].firstName + " " + employees.sales[j].lastName + "--" + employees.sales[j].age+"</li>";
    }
    output+="</ul>";

    alert(output1);

</script>
chirag
  • 21
  • 1
0

The problem might have been due to line ending.

Here is a working[tested in chrome dev console] code:

var jsonStr = '{"1":\
    [\
        {"OrderItemId":832,"ItemId":995,"Price":0},\
        {"OrderItemId":833,"ItemId":997,"Price":0},\
        {"OrderItemId":834,"ItemId":999,"Price":0}\
    ],\
    "2":\
    [\
        {"OrderItemId":835,"ItemId":1008,"Price":0},\
        {"OrderItemId":836,"ItemId":1057,"Price":0}\
    ]\
}';
var obj = JSON.parse(jsonStr); // works!
Prasanth
  • 5,230
  • 2
  • 29
  • 61
0

You can use jQuery to Parse JSON

Also have a look at this SO question Parse JSON in JavaScript?

Community
  • 1
  • 1
Arun
  • 3,440
  • 11
  • 60
  • 108
0

There is no need to add backward slashes after ending if every object item. You can separate with comma only.

chirag
  • 21
  • 1