Использование веб-данных JSON в массив классов в C # .Net - PullRequest
1 голос
/ 07 апреля 2011

У меня возникли некоторые проблемы при попытке использовать мои данные JSON из веб-URL и поместить их в мой массив классов.

Мой класс выглядит примерно так;

public class User
{
     String Name;
     String Serial;
     String Email;
}

Где мои данные JSON выглядят как

{ "name": "cname", "value": [ "Joe Bloggs"] },
{ "name": "serialnumber", "value": [ "231212312" ] },
{ "name": "gender", "value": [ "male" ] },
{ "name": "email", "value": [ "jbloggs@domain.com" ] },

Я хочу вставить это в массив пользовательских классов, чтобы это было что-то вроде

User myUsers[] = new User[100];

У меня есть данные, загруженные с помощью StreamReader, но я не знаю, с чего начать. Я опробовал DataContractJsonSerializer и несколько других, но не могу найти в Интернете никаких основных руководств, с чего начать.

Следует отметить, что я хочу получить только значения, перечисленные в классе, а не дополнительные функции, такие как пол и т. Д.

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

Спасибо

CM888.

1 Ответ

2 голосов
/ 07 апреля 2011

I Очень Рекомендую заглянуть в эту библиотеку:

Json.NET

В нем много замечательных функций, но самое лучшее, что эторазработан, чтобы имитировать LINQ to XML.Вы можете использовать его очень похожим образом.

Используя эту библиотеку, вы можете анализировать ваш json по объектам и работать с ними, а также с запросами linq для создания вашего пользовательского массива.


Дляразверните мой комментарий выше: (не имеет отношения к вопросу или ответу)

Я имел в виду, что мне было любопытно, почему ваш JSON не был структурирован так:

[
  {"cname": "Joe Bloggs", "serialnumber": "231313213", "gender": "male", "email": "jbloggs@domain.com"},
  {"cname": "Another Dude", "serialnumber": "345345345", "gender": "male", "email": "another@dude.com"}
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...