我想以人类可读的方式将 .NET 对象序列化为 JSON,但我希望对对象的属性或数组的元素是否最终位于自己的一行上有更多的控制。
目前我正在使用 JSON.NETJsonConvert.SerializeObject(object, Formatting, JsonSerializerSettings)
序列化的方法,但似乎我只能应用Formatting.Indented
(各行上的所有元素)或Formatting.None
(所有内容都在一行上,没有任何空格)整个对象的全局格式化规则。有没有一种方法可以默认全局使用缩进,但对某些类或属性关闭它,例如使用属性或其他参数?
为了帮助您理解问题,这里有一些输出示例。使用Formatting.None
:
{"array":["element 1","element 2","element 3"],"object":{"property1":"value1","property2":"value2"}}
Using Formatting.Indented
:
{
"array": [
"element 1",
"element 2",
"element 3"
],
"object": {
"property1": "value1",
"property2":"value2"
}
}
我想看到的是:
{
"array": ["element 1","element 2","element 3"],
"object": {"property1":"value1","property2":"value2"}
}
(我意识到我的问题可能与this one https://stackoverflow.com/questions/9357582/how-to-format-listlistint-as-a-table-in-json-file,但那里的评论完全没有抓住重点,实际上并没有提供有效的答案。)