Javascript:JSON.stringify没有按预期工作

时间:2016-04-18 09:22:57

标签: javascript json stringify

我从维基百科中提取JSON数据。但是,我无法将它整齐地串联起来,我不明白为什么。

这是我的代码。

request({url:formQuery(query), encoding:"utf8"}, (err, res, body) => {
    if (err) handleErr(err)
    console.log(JSON.stringify(body, null, 3))
})

如果我只使用普通的console.log(body),JSON输出如下:

{"continue":{"rvcontinue":"20160314150329|710029514","continue":"||"},"query":{"normalized":[{ ...

但如果我使用stringify(如上所述),它看起来像这样:

"{\"continue\":{\"rvcontinue\":\"20160314150329|710029514\",\"continue\":\"||\"},\"query\":{\"normalized\":[{ ...

Stringify是在字符串的开头添加引号并转义后续字符串。

为什么会这样?欢迎任何帮助。

4 个答案:

答案 0 :(得分:1)

您的JSON数据很好,函数会在输出中添加斜杠,因为输入中有引号。在解析count - 1 == limit字符串/输出

时,不必转义属性名称周围的引号以避免冲突

答案 1 :(得分:1)

我需要先将正文字符串解析为JSON对象。如果我解析正文字符串,它就可以工作。

这很好用:

$resource

答案 2 :(得分:0)

不使用stringify,您可以使用如下。

var oResultData = {"continue":{"rvcontinue":"1111","continue":"1111111"}};
var myRvcontinue = oResultData.continue.rvcontinue;
console.log(myRvcontinue); // 1111

答案 3 :(得分:0)

这是因为您的请求的结果已经是表示您的对象的字符串。 如果再次对其进行字符串化(就像那样),则会获得表示表示对象的字符串的字符串。