值列表如何字符串化

时间:2019-04-03 14:39:01

标签: json typescript angular6

我正在尝试从Rest API整理响应。 从API得到的响应是

[{ID: 1, Name: test, Values: "{uname: test, age: 24}"},{ID: 2, Name: test1, Values: "{uname: test1, age: 25}"}] 

 value: string[] = [];
 this.http.get('/api/test/' + id).subscribe(result => {        
      const res = result.json();
 });

将值存储在字符串数组中

 for (let result of res) {
    this.value.push(result.Values);
 }

 const string = JSON.stringify(this.value);

预期结果

[{"uname": "test", "age": "24"},{"uname": "test1", "age": "25"}]

1 个答案:

答案 0 :(得分:1)

您可以使用map function来获取“值”字段

此正则表达式可更正JSON格式

correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": ');

已更新: 我更新了正则表达式以为键和值对象字符串添加引号。

correctedJson = badJson.replace(/([a-zA-Z0-9-]+): ([a-zA-Z0-9-]+)/g, "\"$1\":\"$2\"")

它显示您的期望值。

var obj = [{ID: 1, Name: 'test', Values: "{uname: test, age: 24}"},{ID: 2, Name: 'test1', Values: "{uname: test1, age: 25}"}];

var testobj = obj.map(c=>c.Values.replace(/([a-zA-Z0-9-]+): ([a-zA-Z0-9-]+)/g, "\"$1\":\"$2\""));

console.log(JSON.stringify(testobj));