0

私のJSONは次のようになります。

[
    {
        "1332879360000.0": 300,
        "1332797760000.0": 353,
        "1332799320000.0": 358,
        "1332879780000.0": 302,
        "1332800160000.0": 359,
        "1332880200000.0": 299,
        "1332880620000.0": 298,
        "1332881040000.0": 301,
        "1332881460000.0": 402,
        "1332880020000.0": 330,
        "1332882300000.0": 466,
        "1332796620000.0": 519,
        "1332800520000.0": 447,
        "1332797460000.0": 359,
        "1332801000000.0": 442
    }
]

これらのデータを Highchart にロードしたいのですが、別の形式が必要です。

[
    [
        1332879360000,
        300
    ],
    [
        1332797760000,
        353
    ],
    [
        1332799320000,
        358
    ],
    [
        1332879780000,
        302
    ]
]

データはデータベースによって生成され、text.json のような単一のファイルではなく、直接生成されます。

4

4 に答える 4

1
json1 = [{"1332879360000.0": 300.0, "1332797760000.0": 353.0, "1332799320000.0": 358.0, "1332879780000.0": 302.0, "1332800160000.0": 359.0, "1332880200000.0": 299.0, "1332880620000.0": 298.0, "1332881040000.0": 301.0, "1332881460000.0": 402.0, "1332880020000.0": 330.0, "1332882300000.0": 466.0, "1332796620000.0": 519.0, "1332800520000.0": 447.0, "1332797460000.0": 359.0, "1332801000000.0": 442.0}];

hc = []

for(key in json1[0])
{
    hc.push([key,json1[0][key]])
}

json2 = JSON.stringify(hc)

json2 には、必要な方法でデータが含まれるようになりました =)

于 2013-09-09T04:05:52.450 に答える
0

これを試してみてください: - http://jsfiddle.net/adiioo7/tcu8t/2/

JS:-

var oldFormat = [{
    "1332879360000.0": 300,
        "1332797760000.0": 353,
        "1332799320000.0": 358,
        "1332879780000.0": 302,
        "1332800160000.0": 359,
        "1332880200000.0": 299,
        "1332880620000.0": 298,
        "1332881040000.0": 301,
        "1332881460000.0": 402,
        "1332880020000.0": 330,
        "1332882300000.0": 466,
        "1332796620000.0": 519,
        "1332800520000.0": 447,
        "1332797460000.0": 359,
        "1332801000000.0": 442
}];

var newFormat = [];

jQuery(function ($) {
    $.each(oldFormat[0], function (i, item) {
        newFormat.push([parseInt(i), item]);
    });

    console.log(newFormat);
});
于 2013-09-09T04:29:12.903 に答える
0

配列の JavaScript 配列を作成し、次のように値を配置できます。

var json = ... your json array

// construct your java-script array
var value = new Array(json.length);

// populate javascript array
for (var n = 0; n < json.length; n++ ) {
   var obj = json[n];
   value[n] = new Array(2);
   for(var key in obj){
        value[0] = key;
        value[1] = obj[key];
   }
}
于 2013-09-09T03:58:30.600 に答える
0

JSON 入力を繰り返し処理し、配列を動的に構築する必要があります。次にJSON.stringify()、目的の出力 JSON を取得するために使用します。

var jsonIn ="[\r\n" + 
        "    {\r\n" + 
        "        \"1332879360000.0\": 300,\r\n" + 
        "        \"1332797760000.0\": 353,\r\n" + 
        "        \"1332799320000.0\": 358,\r\n" + 
        "        \"1332879780000.0\": 302,\r\n" + 
        "        \"1332800160000.0\": 359,\r\n" + 
        "        \"1332880200000.0\": 299,\r\n" + 
        "        \"1332880620000.0\": 298,\r\n" + 
        "        \"1332881040000.0\": 301,\r\n" + 
        "        \"1332881460000.0\": 402,\r\n" + 
        "        \"1332880020000.0\": 330,\r\n" + 
        "        \"1332882300000.0\": 466,\r\n" + 
        "        \"1332796620000.0\": 519,\r\n" + 
        "        \"1332800520000.0\": 447,\r\n" + 
        "        \"1332797460000.0\": 359,\r\n" + 
        "        \"1332801000000.0\": 442\r\n" + 
        "    }\r\n" + 
        "]";

var jsonArr = [];       
var jsonObj = JSON.parse( jsonIn )[0];

for( var key in jsonObj ) {
    jsonArr.push( [parseInt( key ), jsonObj[key]] );
}

var jsonOut = JSON.stringify( jsonArr ); 
console.log( jsonOut );

出力:

[[13328793600,300]、[1332797760000,353]、[133279320000,358]、[1332879780000,302]、[1332800160000,359]、[1332888000000000000000000299]、[133288802999]、 1332881460000,402]、[1332880020000,330]、[1332882300000,466]、[1332796620000,519]、[1332800520000,447]、[1332797460000,359]、[0,0,000]140200]

于 2013-09-09T04:04:50.147 に答える