我正在尝试从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"}]
答案 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));