Json.NET对象序列化-更改缩进字符

标签 json vb.net json.net

我有简单的代码将我的对象序列化为 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/

相关文章:

javascript - 检索纯文本 JSON,插入到 JavaScript

.net - 使用 PropertyGrid 设置 PerformanceCounter

c# - 如何将Json数组转换为C#中的对象列表

c# - 如何使用属性名称的部分匹配从 JObject 获取值

json - 如何在notepad++中格式化JSON

python - 根据列名称将数据帧转换为 JSON

javascript - 如何使用 ajax 从文件加载 JSON 对象?

vb.net - 捕获当前滚动条位置 vb.net

vb.net - Google Drive V3 断点续传下载

c# - Json.Net 在序列化时弄乱了 DateTimeOffset 的时区