我正在尝试从Google Analytics(分析)中解析数据,以获取网站上的报告工具,并且可以毫无问题地恢复数据。然后,我使用该数据生成一个FusionChart对象:
我在“数据”元素中使用的数据是标签/值对组合,如果我明确输入以下内容:
[{ "label":"1","value":"34" },"label":"2","value":"72" },...]
图形运行良好(显示标签等)。
但是,我正在使用的字符串被解析为:
[{ "label":["1"],"value":["34"] },"label":["2"],"value":["72"] },...]
(请注意键的值元素周围的方括号)
拥有这些方括号不会引起任何问题,因此任何人都知道如何在没有这些情况的情况下解析数据?我在elmments上尝试过字符串替换,但是没有运气!
谢谢
答案 0 :(得分:4)
如果您知道每个标签和值都是一个单元素数组,则可以使用诸如map
之类的数组方法来清理数据。
let obj = [{ "label":["1"],"value":["34"] }, { "label":["2"],"value":["72"] }];
let cleaned = obj.map(item => {
return { label: item.label[0], value: item.value[0] };
});
console.log(cleaned);
答案 1 :(得分:1)
如果您要从其他服务解析字符串,则可以更改JSON。您可以编写一个自定义解析器齐整器,以将其更改为字符串而不是数组。
var json = '[{ "label":["1"],"value":["34"] },{"label":["2"],"value":["72"]}]'
var parsed = JSON.parse(json, (key, value) => ['label', 'value'].includes(key) ? value[0] : value)
console.log(parsed)
如果它来自其他来源,并且已经是一个对象,则无法循环遍历对象数组并将其转换为字符串。