为什么没有在我的JSON中添加卷发支架



为什么以下代码未在json的值周围输出卷曲括号?我以为Json总是被封装在支架内。

var json = JsonConvert.SerializeObject("some text into json", Formatting.Indented);`

现在的JSON现在是""some text into json""而不是{ ""some text into json"" }

这是因为您只是序列化了一个字符串。因此,序列化器仅返回序列化字符串,在JSON中,它只是引号中包含的字符串:

"some text"

JSON仅在序列化对象时添加卷曲括号:

{
    "someStringProperty": "some text"
}

还要注意,输出中的后斜线是由于视觉工作室再次将整个字符串封装在引号中,并且还逃脱了字符串中的引号。序列化字符串的"真实"值只使用简单的引号。因此,Visual Studio将显示上述JSON字符串如下:

""some text""

"{ "someStringProperty": "some text" }"

JSON代表" JavaScript对象表示法",这意味着所有数据均表示为单个JavaScript对象(看起来像对象的JavaScript代码的字符串更正确)。

这就是为什么卷曲括号不是强制性的原因,因此需要它们来表示复杂的对象结构。{ "some text into json" }(我省略引用secave for Clariness)只是JavaScript编译器的普通语法错误!您可以拥有{ "key": "value", "other key": "other value" }对象,但是没有值的键是错误。

因此,"some text into json"是字符串对象"some text into json"的唯一可能的正确JSON。

相关内容

  • 没有找到相关文章

最新更新