【问题标题】:How to convert JSON如何转换 JSON
【发布时间】:2015-12-17 10:52:13
【问题描述】:

我有以下 JSON 数据结构:

var data = <%=request.getAttribute("jsondata")%>;

那是我的data

[
    {
        "name": "User I/O"
    },
    {
        "key": "61410583140000"
    },
    {
        "value": "125"
    },
    {
        "name": "User I/O"
    },
    {
        "key": "61410583200000"
    },
    {
        "value": "184"
    },
    ...
]

现在我想要类似的东西:

[ 
   //Squared brackets!!
   [key,value]  
   [key,value]
   [key,value]
]

转换的正确代码是什么?

【问题讨论】:

    标签: json highcharts data-transform


    【解决方案1】:

    这就是你想要的 - 编辑: 删除了不必要的过滤器,reduce 负责忽略“名称”条目。

    data.reduce(function(a,b){ 
                    if (b.key) { 
                        a.push(b.key);
                    } 
                    else if (b.value){
                            var key = a.pop(); 
                            a.push([key, b.value]);
                    }
                    return a;
                }, []);
    

    这将返回一个这样的数组 -

    [[61410583140000,125],[61410583200000,184]]
    

    【讨论】:

    • 我收到“令牌语法错误 ">”,删除此令牌”:/
    • 我更新了代码,请立即尝试。该错误的原因是我使用了跨浏览器不支持的Arrow function。无论如何,这里是多余的。
    【解决方案2】:
        var result = [];
        for(var i in json_data)
            result.push([i, json_data [i]]);
    

    这应该可以正常工作

    【讨论】:

    • 它会产生类似 [ [0,Object], [1,Object], [2, Object]];但是我怎样才能得到类似 [[Object,Object], [Object,Object], [Object, Object]]; ?
    猜你喜欢
    • 2021-06-23
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2020-04-11
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多