我有简单的代码将我的对象序列化为 JSON:
Dim json As String = JsonConvert.SerializeObject(MyObject, Formatting.Indented)
如何将生成的 JSON 中的缩进字符更改为“-”?我知道有 JsonTextWriter.IndentChar
但我不知道如何与 JsonConvert.SerializeObject
最佳答案
下面的链接问题中有一个来自 Yuval Itzchakov 的答案,它创建一个 JsonTextWriter
,设置一个 IndentChar
,然后使用修改后的设置进行序列化。下面是用 VB 重写的代码,并使用请求的“-”字符。
Sub Main
Dim anon = New With { .Name = "Yuval", .Age = 1 }
Dim result = SerializeObject(anon)
Console.WriteLine(result)
End Sub
Public Function SerializeObject(Of t)(ByVal arg As t) As String
Dim sw = New StringWriter()
Using jsonWriter = New JsonTextWriter(sw)
jsonWriter.Formatting = Newtonsoft.Json.Formatting.Indented
jsonWriter.IndentChar = "-"C
jsonWriter.Indentation = 4
Dim jsonSerializer = Newtonsoft.Json.JsonSerializer.CreateDefault()
jsonSerializer.Serialize(jsonWriter, arg)
End Using
Return sw.ToString()
End Function
结果
{
----"Name": "Yuval",
----"Age": 1
}
来源:Customize indentation parameter in JsonConvert.SerializeObject
关于Json.NET对象序列化-更改缩进字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41388525/