Нужна помощь в использовании объекта JSON без «root» с Json.Net и JArrays - PullRequest
0 голосов
/ 23 мая 2011

Я использую ExportAPI от MailChimp. Он отправляет обратно строку без корня Json, например, так:

["Email Address", "First Name", "Last Name"]
["jeff@mydomain.com", "Jeff", "Johnson"]
["tubbs@mydomain.com", "Tubbs", "McGraw"]

Нет скобок, ничего - только пара массивов. Загрузка его в JArray подхватывает только первый объект:

JArray jsonArray = new JArray.Parse(jsonResponse);
Console.WriteLine(jsonArray);

//Outputs:
//Email Address
//First Name
//Last Name

Я надеюсь скопировать содержимое строки в базу данных и должен получить доступ к ответу с помощью LINQ. Любые предложения относительно правильного способа работы с объектом Json, как я показал выше (с использованием Json.net или иным образом?)

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Дополните строку корневым элементом, просто добавьте '[' и ']'?

0 голосов
/ 24 мая 2011

Это поведение на самом деле полностью нарочно, как упомянуто в документах . Причина заключается в том, что полный дамп данных списка может быть слишком большим, чтобы постоянно помещать его в память и анализировать. Таким образом, и учитывая формат возврата, вы должны использовать новую строку в качестве разделителя (или читать его по проводам таким образом), анализировать каждый объект по отдельности, а затем делать с ними все, что вам нужно.

Я не знаком с этим в C # / Linq, но пример PHP на странице документации делает именно это.

...