#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:
Я настоятельно рекомендую изучить эту библиотеку:
У него много замечательных функций, но лучшая из них заключается в том, что он разработан для имитации 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"}
]