如何将字符串从servlet解析为javascript并创建包含数组值的格式化对象

时间:2017-06-16 21:18:51

标签: javascript java arrays json parsing

我已设法创建下面的字符串并将其传递给jsp

"Dataset1:[ 10,22,33,44,55,66,7 ],Dataset2:[ 20,12,43,24,55,26,47 ],Dataset3:[ 30,12,53,64,5,16,77 ],Dataset4:[4 0,12,63,64,5,6,44 ]"

我的图表函数接受数据作为下面描述的js对象

var graph_dataset = {
                "Dataset1":[10,22,33,44,55,66,7  ]
                ,"Dataset2":[20,12,43,24,55,26,47  ]
                ,"Dataset3":[30,12,53,64,5,16,77  ]
                ,"Dataset4":[40,12,63,64,5,6,44  ]
            };

因此,如果我通过graph_dataset.Dataset4调用它,我应该能够获取我的数组(对应于每个键的值)。

我已经尝试过很多东西,包括JSON.parse。请帮助解决一段代码

2 个答案:

答案 0 :(得分:1)

这让我觉得很脏,但它完成了工作。

let str = "Dataset1:[ 10,22,33,44,55,66,7 ],Dataset2:[ 20,12,43,24,55,26,47 ],Dataset3:[ 30,12,53,64,5,16,77 ],Dataset4:[40,12,63,64,5,6,44 ]";
let result = str.split(',Dataset');
result[0] = result[0].split('Dataset')[1];

let obj = result.reduce( (prev, curr) => {
    let ar = curr.split(':');
    prev['Dataset' + ar[0]] = JSON.parse(ar[1]);
    return prev;
}, {} );

console.log(obj);

答案 1 :(得分:0)

回答面临类似困难的人。

我更正了字符串格式,并在适用的地方添加了quotes{}

正确格式化字符串后看起来像 var str='{"Dataset1":[10,22,33,44,55,66,7],"Dataset2":[20,12,43,24,55,26,47],"Dataset3":[30,12,53,64,5,16,77]}';

我能够解析字符串并成功生成图表。

obj=JSON.parse(str);