使用lodash将Json对象转换为数组

时间:2017-03-01 20:59:59

标签: json object lodash

我正在尝试将我的JSON结果转换为数组以将其绑定到我的Kendo控件。 我得到的JSON结果如下。

"Issues": [
    {
        "Id": null,
        "Key": null,
        "Values": [
            {
                "Key": "Display Name",
                "Value": "Rya"
            },
            {
                "Key": "UserName",
                "Value": "RH"
            },
            {
                "Key": "Count",
                "Value": "350"
            }
        ]
    },
    {
        "Id": null,
        "Key": null,
        "Values": [
            {
                "Key": "Display Name",
                "Value": "Mike"
            },
            {
                "Key": "UserName",
                "Value": "ML"
            },
            {
                "Key": "Count",
                "Value": "90"
            }
        ]
    }
]

我需要将它绑定到Kendo控件的数组如下所示。

 { "Display Name": 'Rya', "UserName" : "RH", value: 350 },
 { "Display Name": 'Mike', "UserName" : "ML", value: 90 }

i)我不想硬编码字符串“显示名称”,“用户名”,“RH”。我试过v.Values [0] .Key:v.Values [0] .Value,但它不起作用。

ii)另外我不知道会有多少“键,值”对,所以我需要遍历值并生成数组而不是固定

category: v.Values[0].Value, 
UserName: v.Values[1].Value,
  value: v.Values[2].Value,
.
.
.
score: v.values[n].value

1 个答案:

答案 0 :(得分:2)

如果你正在使用ES6,在这种情况下你真的不需要lodash:

<a id="download" download="triangle.png">
<button type="button" onClick="download()">Download</button>
</a>
    
<canvas id="myCanvas" width="720" height="450">Your browser does not support Canvas.</canvas>

http://codepen.io/cjke/pen/RprJdG?editors=0010

如果想使用lodash或不使用ES6,那么:

var r = json.Issues.map(v => ({ 
  category: v.Values[0].Value, 
  value: v.Values[2].Value,
}));