user2208349
user2208349

Reputation: 7709

jQuery: Create an array from JSON

I have a JSON like this:

{
  "default": [
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ],
    [
      1325876000000,
      0
    ]
  ],
  "direct": [
    [
      1328196800000,
      0
    ],
    [
      1328196800000,
      100
    ],
    [
      1328196800000,
      0
    ],
    [
      1328196800000,
      0
    ]
  ],
  "Sales": [
    [
      1330517600000,
      0
    ],
    [
      1330517600000,
      0
    ],
    [
      1330517600000,
      90
    ],
    [
      1330517600000,
      0
    ]
  ],
  "Support": [
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ],
    [
      1332838400000,
      0
    ]
  ]
}

I want to generate array contains the name of each item and the first value of the corresponing array. the result should be like this:

ticks = [["default", 1325876000000],["direct", 1328196800000],["Sales", 1330517600000],["Support", 1332838400000]]

the names like default, direct, sales, support

are dynamic so I can't do jsondata.support

what I tried

ticks = []
for key in jsondata{
    arraynew = [];
    arraynew.push(key)
}

but I don't know how to push the values?

Help please.

Upvotes: 0

Views: 69

Answers (1)

Pointy
Pointy

Reputation: 413996

You just need to access the sub-array.

var ticks = [];
for (var key in jsondata) {
  ticks.push( [ key, jsondata[key][0][0] ] );
}

The expression jsondata[key] gets you the outer array corresponding to each key. Then, jsondata[key][0] gets you the first of the sub-arrays, and adding the final [0] to that gets you the first value in the first sub-array.

Note that you're not guaranteed to get the keys back in any particular order.

Upvotes: 4

Related Questions