【问题标题】:Json.NET object serialization - change indent charJson.NET 对象序列化 - 更改缩进字符
【发布时间】:2016-12-29 23:15:44
【问题描述】:

我有简单的代码将我的对象序列化为 JSON:

 Dim json As String = JsonConvert.SerializeObject(MyObject, Formatting.Indented)

如何在生成的 JSON 中将缩进字符更改为“-”?我知道有JsonTextWriter.IndentChar,但我不知道如何与JsonConvert.SerializeObject一起实现它

【问题讨论】:

    标签: json vb.net json.net


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多