Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2014, 18:06   #1
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию [c#] Чтение JSON файла

Здравствуйте! Помогите пожалуйста с чтением json файла.

Код:
{
  "users": [
     {
         "id": "000000"
     },
     {
         "id": "000001"
     },
     {
         "id": "000002"
         "name": "AAAA"
     },
     {
         "id": "000003"
         "name": "AAAB"
     },
     {
         "id": "000004"
     },
     ......... и т.д.
   ]
}
Читаю его так:
Код:
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
 
.....
 
DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(JSONN));
string fileContent = File.ReadAllText(directory + "file.json");
JSONN jsonn = (JSONN)json.ReadObject(new System.IO.MemoryStream(Encoding.UTF8.GetBytes(fileContent)));
 
.....
 
[DataContract]
        public class JSONN
        {                   
            [DataMember(Name = "users")]
            public Users[] US { get; set; }
        }     
[DataContract]
        public class Users
        {
            [DataMember(Name = "id")]
            public string ID { get; set; } 
            [DataMember(Name = "name")]
            public string Name { get; set; }    
        }
Трудность в том, что не во всех элементах массива есть "name". А он может быть в каком угодно элементе. Выбивает ошибку, когда программа доходит до первого элемента без "name"
Цитата:
Ошибка десериализации объекта типа MyProgram.Form1+JSONN. Ожидался элемент End "extract" из пространства имен "". Найден элемент "exclude" из пространства имен "".
Как можно решить это? Мне подсказали что можно попробовать
Код:
try{...} catch{...}
, но я не знаю как его "засунуть" в чтение json.
Надеюсь на помощь
Ghost3 вне форума Ответить с цитированием
Старый 29.07.2014, 12:43   #2
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Попробуйте использовать библиотеку Newtonsoft.JSON (есть в NuGet).

В частности, вам может пригодиться десериализация из файла
No_Comments вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из файла Daelan C# (си шарп) 2 19.05.2013 12:05
чтение из файла weightless Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 31.03.2013 10:40
Чтение из файла brunis Паскаль, Turbo Pascal, PascalABC.NET 6 11.08.2012 12:59
Чтение с файла с++ Voxa7 Помощь студентам 2 27.04.2011 20:47
чтение из файла Nika2610 JavaScript, Ajax 3 29.03.2011 08:12