Итак, у меня есть JSON, сохраненный в файле, скажем test.json. Я открываю файл, читаю JSON внутри него в строке, а затем пытаюсь десериализовать его в объект. Файл открывается правильно, строка читается (но escape-строки появляются в строке), и когда я пытаюсь десериализовать его, он возвращает значения null для всех полей объекта, и я не могу понять, почему.C# Json Deserialize возвращает nulls
Вот как JSON сохраняется в файле: http://pastebin.com/Q6hdiJAD
Вот как JSON сохраняется в моей строке после чтения из файла: http://pastebin.com/HaB480Ww
Вот код, который должен десериализации JSON (я принимая несколько jsons из нескольких файлов и десериализации их и добавить их в список):
List<Root> raw = new List<Root>();
string[] files = Directory.GetFiles(HostingEnvironment.MapPath("~/Content/Files"));
foreach (string path in files)
{
using (StreamReader sr = new StreamReader(path))
{
string json = sr.ReadToEnd();
Root root = JsonConvert.DeserializeObject<Root>(json);
raw.Add(root);
}
}
а вот мой класс:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using APIGovApp.Models;
namespace APIGovApp.Classes
{
public class XmlModel
{
public string Staff { get; set; }
public List<Nomenclator> noms { get; set; }
}
public class Root
{
public XmlModel nom_localitati { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace APIGovApp.Models
{
public class Nomenclator
{
public int cod_jud { get; set; }
public int cod { get; set; }
public int cod_pol { get; set; }
public string denumire { get; set; }
public string cod_tpl { get; set; }
public int cod_postal { get; set; }
public string cod_sar { get; set; }
public int cod_loc_jud { get; set; }
public int loc_cod { get; set; }
public string are_primarie { get; set; }
public int cod_fiscal_primarie { get; set; }
public int cod_politie_tata { get; set; }
public string sar_cod_mf { get; set; }
public int cod_siruta { get; set; }
public int cod_siruta_tata { get; set; }
}
}
Я участвую в конкурсе, и мне нужно это как можно быстрее. Пожалуйста помоги.
Имена в вашем 'No menclator' не соответствуют JSON, например 'cod_jud' вместо' JUD_COD'. Загрузите JSON на http://json2csharp.com/, чтобы автоматически генерировать правильный набор классов. – dbc