Estoy usando VB.NET para crear un archivo Json.
Todo funciona bien. El código de salida de Json es bueno.
El problema es que no hay salto de línea entre objetos, objetos de matriz, etc.

Mi código en VB.NET está a continuación.

Dim mainlist As New ModJson

mainlist.Version = "123"

Dim billlist As New List(Of ModJson.Billlst)
Dim bill As New ModJson.Billlst
bill.b1 = "B1" & Environment.NewLine '----Tried this
bill.b2 = "B2" & vbCrLf '----- This one too.
bill.b3 = "B3"
billlist.Add(bill)
Dim litemlist As New List(Of ModJson.ItemLst)
For i As Integer = 0 To 1
Dim item As New ModJson.ItemLst
    item.i1 = 0
    item.i2 = 1
    litemlist.Add(item)
Next
bill.itemList = litemlist
mainlist.billLists = billlist
Dim output As String = Newtonsoft.Json.JsonConvert.SerializeObject(mainlist)

Mi salida es algo como esto:

{"Version":"123","billLists":[{"b1":"B1\r\n","b2":"B2\r\n","b3":"B3","itemList":[{"i1":0,"i2":1}]}]}

La salida es correcta. Simplemente no hay salto de línea.

Quiero algo como esto :

{
  "Version": "123",
  "billLists": [
    {
      "itemList": [
        {
          "i1": 0,
          "i2": 1
        }
      ],
      "b1": "B1\r\n",
      "b2": "B2\r\n",
      "b3": "B3"
    }
  ]
}

Leí muchas publicaciones, pero no puedo obtener una que me explique cómo agregar un salto de línea.

0
Rita Shroff 12 oct. 2019 a las 09:39

1 respuesta

La mejor respuesta

SerializeObject tiene un método de sobrecarga donde podemos proporcionar el formato requerido como se muestra a continuación.

string json = JsonConvert.SerializeObject(mainlist, Formatting.Indented);
1
GowriPranithBayyana 12 oct. 2019 a las 07:04