2014-01-31 2 views
0

У меня есть структура JSon и мне нужно, чтобы построить его динамически с использованием .net примера, приведенного в:JSON Строительный объект с вложенными массивами в vb.net

'{"payload":{"message" : <message>, "badge" : <badge>}[, "filter" : {"deviceID" :   <deviceID criteria>,"<param1>" : <criteria>, ...}][, "schedule": {"scheduledTime": > <scheduled_time>, "useTimeZone": <use_time_zone>}]}' 

До сих пор я был в состоянии получить только первая часть завершена, используя JSON:

Dim sb As New StringBuilder() 
    Dim sw As New StringWriter(sb) 
    Using writer As JsonWriter = New JsonTextWriter(sw) 
      writer.Formatting = Formatting.Indented 
      writer.WriteStartObject() 
      writer.WritePropertyName("payload") 
      writer.WriteStartObject() 
      writer.WritePropertyName("message") 
      writer.WriteValue("Hello World!") 
      writer.WritePropertyName("badge") 
      writer.WriteValue(7) 
      writer.WriteEnd() 
      End Using 

это дает мне:

{ 
    "payload": { 
    "message": "Hello World!", 
    "badge": 7 
} 

И потом, если я пытаюсь интро duce массив using writer.WriteStartArray() Я получаю ошибки, как это сделать правильно?

У меня теперь есть дно правильного пути, чтобы построить json по крайней мере в jquery! Синтаксис:

var T = 'This is a Test!'; 
var D = '1'; 
return {"message": T , "badge": D }; 

The request payload

ответ

0

Как вы можете видеть, JSon выход из текущего кода отсутствует единый закрывающую фигурную скобку. Я не уверен, но это может быть причиной ошибки при добавлении writer.WriteStartArray(). Попробуйте исправить недостающую закрывающую фигурную скобку по телефону WriteEndObject:

writer.WriteValue("Hello World!") 
writer.WritePropertyName("badge") 
writer.WriteValue(7) 
writer.WriteEndObject() 
writer.WriteEndObject() 
End Using 

UPDATE:

Я думаю, что квадратная скобка в описании не означает, что массив. Я как-то полагаю, что это означает, что часть внутри квадратной скобки является необязательным свойством.

[, "filter" : {"deviceID..."}] 

уведомление запятая в начале квадратным содержимого скобок, это указывает на то, что filter другое свойство можно добавить после двух обязательных свойств message и badge.

+0

Если я добавлю WriteEndObject, он закрывает json и не разрешает писать какой-либо дополнительный json, как в примере в моем сообщении. – joebohen

+0

добавьте дополнительные json перед 'WriteEndObject'. И проверьте мое обновление, я считаю, что вы не хотите добавлять какой-либо массив. – har07

+0

Спасибо, что имеет смысл. Я попытаюсь завершить json и поаст его на сайт и посмотреть, все ли в порядке. Я вернусь и дам вам знать. – joebohen

Смежные вопросы