2016-06-03 12 views
0

Hey alle habe ich die folgende json Ausgabe, die Ich mag würde erstellen:JSON.NET Struktur mit JTokenWriter

{ 
    "scheduleName": "", 
    "firstName": "", 
    "lastName": "", 
    "theRole": "", 
    "linker": "", 
    "Schedule": { 
     "ID": "", 
     "totalHrs": "", 
     "Mon": "", 
     "Tue": "", 
     "Wed": "", 
     "Thu": "", 
     "Fri": "", 
     "Sat": "" 
    }, 
    "empInfo": { 
     "ID": "", 
     "Email": "", 
     "Phone": "", 
     "Active": "", 
     "Img": "", 
     "Badge": "" 
    }, 
    "availability": { 
     "ID": "", 
     "Mon": "", 
     "Tue": "", 
     "Wed": "", 
     "Thu": "", 
     "Fri": "", 
     "Sat": "" 
    }, 
    "training": { 
     "name": "", 
     "id": "" 
    } 
} 

Mit dem newtonsoft Create JSON with JTokenWriter Ich frage mich, wie die „Schedule“, erstellen "empInfo", etc in meiner Json-Ausgabe, da es keine Beispiele auf der Seite dieser Typen gibt.

Das einzige Beispiel, es zeigt, ist wie so strukturiert:

{ 
    "name1": "value1", 
    "name2": [ 
    1, 
    2 
    ] 
} 

Die ersten Werte sind einfach zu erstellen:

Dim jsonWriter As New JTokenWriter() 

jsonWriter.WriteStartObject() 
jsonWriter.WritePropertyName("scheduleName") 
jsonWriter.WriteValue("value1") 
jsonWriter.WritePropertyName("firstName") 
jsonWriter.WriteValue("value2") 
jsonWriter.WritePropertyName("lastName") 
jsonWriter.WriteValue("value3") 
jsonWriter.WritePropertyName("theRole") 
jsonWriter.WriteValue("value4") 
jsonWriter.WritePropertyName("linker") 
jsonWriter.WriteValue("value5") 
'"?": { 
' "?": "?", 
' "?": "?", 
' etc.... 
'? 
jsonWriter.WriteEndObject() 

Aber das ist, wo ich muss aufhören, da ich weiß nicht, wie um die andere Struktur zu machen.

Antwort

2

Um ein verschachteltes Objekt als Wert einer Eigenschaft zu schreiben, schreiben Sie den Eigenschaftsnamen, führen Sie dann einen verschachtelten WriteStartObject() aus, gefolgt von den zu schreibenden Eigenschaften und schließlich einem verschachtelten WriteEndObject(). Zum Beispiel:

Dim jsonWriter As New JTokenWriter() 

jsonWriter.WriteStartObject() 'Start the root object 
jsonWriter.WritePropertyName("scheduleName") 
jsonWriter.WriteValue("value1") 

jsonWriter.WritePropertyName("Schedule") 'Write the "Schedule" property name 
jsonWriter.WriteStartObject() 'Start the nested "Schedule" object 
jsonWriter.WritePropertyName("ID") 
jsonWriter.WriteValue("ID Value") 
jsonWriter.WriteEndObject() 'End the Schedule object 

jsonWriter.WriteEndObject() 'End the root object 

Beispiel fiddle.

+0

Das hat es getan. Danke dbc! – StealthRT