c # Как извлечь данные Json в массив - PullRequest
4 голосов
/ 22 сентября 2009

Я нашел разные библиотеки, которые могут анализировать данные Json, но я не нашел никакой документации о том, как получить данные в массив или список C #.

Я получил данные Json:

{"001": {"Имя": "Джон", "Телефон": ["Mob - 98837374", "Mob - 98363627"]}, "002": {"Имя": "Том", "Телефон": ["Моб - 49858857"]}}

Кто-нибудь понял? :)

Редактировать

Полезные подробности, опубликованные OP в виде комментариев, переизданных в виде вопроса, отредактированного AnthonyWJones

Мой код с использованием JSON.NET:

StringBuilder sb = new StringBuilder();
List<string> entities = (List<string>)JsonConvert.DeserializeObject(responseFromServer, typeof(List<string>));
foreach (string items in entities) {
  sb.Append(items);
}

Но я всегда получаю сообщение об ошибке при отладке:

Предупреждение 1 Ссылка на тип 'System.DateTimeOffset' утверждает, что он определен в 'c: \ Program >> Files \ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ WindowsCE \ mscorlib.dll', но не может >> найти c: \ Div \ Json dot net \ Bin \ Newtonsoft.Json.dll "

Ответы [ 4 ]

3 голосов
/ 22 сентября 2009

Посмотрите на это: Разбор JSON с использованием Json.net

Вот некоторая специальная документация Json.NET для сериализации и десериализации массивов: Сериализация коллекций с помощью Json.NET

0 голосов
/ 23 сентября 2009

Поскольку я занимаюсь разработкой для Windows Mobile, кажется, что Json.net слишком велик. Я получаю сообщение об ошибке при попытке отладки и вижу, что вся память устройства используется.

Во всяком случае ... я думаю, что я просто сам проанализирую строку Json, так как я знаю, к чему приведет строка.

Спасибо за предложения в любом случае.

Люди на переполнении стека великолепны!

0 голосов
/ 22 сентября 2009

Структура JSON в ее нынешнем виде имеет некоторые проблемы. Похоже, что в качестве данных используются имена свойств, такие как «001» и «002». Это хорошо в Javascript, но в C # это сложно сделать. Лучшая структура была бы: -

[ {"ID": "001", "Name":"John", "Phone":["Mob - 98837374","Mob - 98363627"]},
  {"ID":"002", "Name":"Tom", "Phone":["Mob - 49858857"]} ]

Тогда JSON.NET, как указывали другие, можно использовать более эффективно.

0 голосов
/ 22 сентября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...