为什么JSON.stringify添加额外的“”

时间:2018-10-03 19:46:32

标签: javascript json

我的应用程序从服务器收到以下消息

got error from the Observable: {result: "error", additional-info: "", http-status: "401", http-status-text: "Unauthorized"}

我将其解析为变量

error:ServerResponseAPI

如果我做JSON.stringify(error['additional-info']),我注意到结果是""""而不是""

为什么?

2 个答案:

答案 0 :(得分:2)

$是一个空字符串,它是有效的JSON(任何单个字符串都是有效的JSON)。如果对空字符串使用"",它将把提供的值字符串化/序列化为JSON。在这种情况下,这是一个空字符串,因此它将为您提供一串引号。这就是为什么在记录值时可能会看到JSON.stringify'""'的原因。这是一个字符串,其中包含一个空字符串(两个引号)的JSON表示形式。

例如,

""""会给您JSON.stringify('a')

答案 1 :(得分:1)

外部引号表示该内容在字符串中。

您的json内容是一个用真实字符串表示的空字符串,可以用转义符"\"\""表示。

如果error['additional-info']为空,则JSON.stringify(error['additional-info'])将返回"null"。在这种情况下,内容为null值,不带引号。

JSON.stringify将永远不会返回空字符串。