我有下一个回复:
{
"Status": 200,
"Email": "aristos@gmail.com",
"Values": "[\"{\\\"name\\\":\\\"John\\\",\\\"age\\\":30,\\\"ids\\\":[ \\\"123445\\\", \\\"2345456\\\", \\\"42346\\\" ]}\"]"
}
我想解决这个问题:
"Values": "[\"{\\\"name\\\":\\\"John\\\",\\\"age\\\":30,\\\"ids\\\":[ \\\"123445\\\", \\\"2345456\\\", \\\"42346\\\" ]}\"]"
所以它看起来更像这样:
{ Status: 200,
Email: 'aristos@gmail.com',
Values: '{"name":"John","age":30,"ids":[ "123445", "2345456", "42346" ]}' }
我正在使用节点js。
var result={Status: 200,
Email: req.body.email,
Values: req.body.values};
请求是:
email:aristos@gmail.com
values:{"name":"John","age":30,"ids":[ "123445", "2345456", "42346" ]}
电话后
此致
答案 0 :(得分:1)
不确定为什么你的数据被包装成数组并进行字符串化,但这是另一个故事。
因此,您需要解析json字符串,并获取第一个数组元素。像这样:
const response = {
"Status": 200,
"Email": "aristos@gmail.com",
"Values": "[\"{\\\"name\\\":\\\"John\\\",\\\"age\\\":30,\\\"ids\\\":[ \\\"123445\\\", \\\"2345456\\\", \\\"42346\\\" ]}\"]"
};
// now it's parsed and unescaped like - {"name":"John","age":30,"ids":[ "123445", "2345456", "42346" ]}
const values = JSON.parse(response.Values)[0];
response.Values = values;
// From now 'response' object will be as you want
答案 1 :(得分:1)
如果您需要使用req.body.values
,最好使用JSON.parse()方法,如下所示:
var val = JSON.parse(req.body.values);
然后你的最终响应String应该使用JSON.stringify()方法进行字符串化:
var result={Status: 200,
Email: "email@example.com",
Values: val};
const response = JSON.stringify(result);
请看一下jsfiddle。