为什么我的JSON中没有添加花括号?

Jim*_*Aho 1 c# serialization json json.net

为什么下面的代码没有输出大括号值的大括号json?我认为JSON总是封装在括号内.

var json = JsonConvert.SerializeObject("some text into json", Formatting.Indented);`
Run Code Online (Sandbox Code Playgroud)

结果JSON现在"\"some text into json\"" 而不是{ "\"some text into json\"" }

Spo*_*xus 5

这是因为您只是序列化了一个字符串.因此序列化器只返回序列化的字符串,在JSON中,它只是用引号括起来的字符串:

"some text"
Run Code Online (Sandbox Code Playgroud)

如果序列化对象,JSON只会添加花括号:

{
    "someStringProperty": "some text"
}
Run Code Online (Sandbox Code Playgroud)

另请注意,输出中的反斜杠来自Visual Studio,它再次将整个字符串封装在引号中,并且还会转义字符串中的引号.序列化字符串的"实际"值只使用简单的引号.因此,Visual Studio将显示以上JSON字符串,如下所示:

"\"some text\""
Run Code Online (Sandbox Code Playgroud)

要么

"{ \"someStringProperty\": \"some text\" }"
Run Code Online (Sandbox Code Playgroud)