Использование веб-данных JSON в массиве классов в C # .Net

#c# #.net #json

#c# #.net #json

Вопрос:

У меня возникли несколько проблем при попытке использовать мои 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. Любопытно, почему все ваши значения представляют собой массивы с одной записью? Находятся ли в них разные пользователи? Т.е. {"name":"cname", "value": ["Joe", "Bob"]} будет представлять 2 разных пользователя?

2. Ага, глядя на базу данных, все сначала начинают с имени, затем атрибута и значения

3. Я расширил свой вопрос из комментариев в ответе.

Ответ №1:

Я настоятельно рекомендую изучить эту библиотеку:

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"}
]