【发布时间】:2019-06-13 15:41:16
【问题描述】:
提供的 JSON 有点非结构化,不符合我的许多 要求。我已经尝试了很多方法,但确实需要很长时间 当我提供 100,000 条记录时
实现的代码
for (var f in stack.data) {
var field = new Object();
for (var o in stack.data[f]['field_values']) {
field[stack.data[f]['field_values'][o]['field_name']] = stack.data[f]['field_values'][o]['value'];
}
stack.data[f]['field_values'] = field;
}
console.log(JSON.stringify(stack, null, 2));
输入 JSON:
var stack = {
"data": [{
"id": 950888888073,
"name": "www.stackoverflow.com",
"field_values": [{
"field_name": "Newsletter?",
"value": true
},
{
"field_name": "Parent",
"value": 950888661
},
{
"field_name": "Birthday",
"value": "2018-04-29"
},
{
"field_name": "Related matter",
"value": 1055396205
},
{
"field_name": "Referral",
"value": "Don Ho"
},
{
"field_name": "Spouse",
"value": "Wo Fat"
}
]
}]
}
预期输出:
{
"data": [
{
"id": 950888888073,
"name": "www.stackoverflow.com",
"field_values": {
"Newsletter?": true,
"Parent": "Gigi Hallow",
"Birthday": "2018-04-29",
"Related": "2012-00121-Sass",
"Referral": "Don Ho",
"Spouse": "Wo Fat"
}
有时“field_values 可以为空。也需要检查它们
{
"id": 950821118875,
"name": "www.google.com",
"field_values": [],
}
这主要是重新排列值。这里值成为键。实际上应该有一个班轮来处理这个问题,但我没有选择。
希望问题清楚
【问题讨论】:
-
您有问题吗?
-
在 JavaScript 中做任何事情 10 万次都会很慢。
-
最后一个例子中的
custom_field_values应该是field_values吗? -
刚刚更新...谢谢
标签: javascript dictionary reduce