如何将字符串解析为 JSON
How to parse string to JSON
我有如下字符串
var str = "{u'MALWARE TROJAN_HORSE': 16, u'MALWARE DUQU': 0, u'MALWARE STUXNET': 8, u'MALWARE STALLING_MANUFACTURING_PLANTS': 1, u'MALWARE VIRUS': 0, u'MALWARE WORM': 0, u'MALWARE NUCLEAR_POWER_PLANTS': 8}"
我需要将其作为数据对象传递给 google 可视化 api 图表,如下所示:
var data = google.visualization.arrayToDataTable([
['query', 'count'],
['Virus', 8175000],
['Malware', 3792000],
['Struxnet', 1526000]
]);
实际上我想将 str 对象转换为上面的 JSON 格式,并将第一个数组项 ['query', 'count']
添加到已解析的字符串
怎么做
您使用的字符串无效JSON。在将其传递给客户端之前,您应该在后端对其进行适当的字符串化。
针对您当前的输入,一个快速而肮脏的解决方案是规范化您的字符串,然后使用 JSON.parse
:
var cleanedString = s.replace(/u/g, '').replace(/'/g, '"');
var data = JSON.parse(cleanedString);
// now that we have an actual object, construct the desired array from it
var mappedData = ['query', 'count'].concat(Object.keys(data).map(function (key) {
return [key, data[key]];
}));
我有如下字符串
var str = "{u'MALWARE TROJAN_HORSE': 16, u'MALWARE DUQU': 0, u'MALWARE STUXNET': 8, u'MALWARE STALLING_MANUFACTURING_PLANTS': 1, u'MALWARE VIRUS': 0, u'MALWARE WORM': 0, u'MALWARE NUCLEAR_POWER_PLANTS': 8}"
我需要将其作为数据对象传递给 google 可视化 api 图表,如下所示:
var data = google.visualization.arrayToDataTable([
['query', 'count'],
['Virus', 8175000],
['Malware', 3792000],
['Struxnet', 1526000]
]);
实际上我想将 str 对象转换为上面的 JSON 格式,并将第一个数组项 ['query', 'count']
添加到已解析的字符串
怎么做
您使用的字符串无效JSON。在将其传递给客户端之前,您应该在后端对其进行适当的字符串化。
针对您当前的输入,一个快速而肮脏的解决方案是规范化您的字符串,然后使用 JSON.parse
:
var cleanedString = s.replace(/u/g, '').replace(/'/g, '"');
var data = JSON.parse(cleanedString);
// now that we have an actual object, construct the desired array from it
var mappedData = ['query', 'count'].concat(Object.keys(data).map(function (key) {
return [key, data[key]];
}));