Десериализация из JSON в список объектов

visuslov спросил: 07 октября 2018 в 02:13 в: c#

Я пытаюсь десериализовать файл json в список объектов. Файл JSON требует, чтобы я использовал UTF8. Я пытаюсь сделать это следующим образом.

FileStream reader1 = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader streamReader1 = new StreamReader(reader1, Encoding.UTF8);
string jsonString1 = streamReader1.ReadToEnd();byte[] byteArray1 = Encoding.UTF8.GetBytes(jsonString1);
MemoryStream stream1 = new MemoryStream(byteArray1);DataContractJsonSerializer inputSerializer2;
inputSerializer2 = new DataContractJsonSerializer(typeof(List<Country>));
c = (List<Country>)inputSerializer2.ReadObject(stream1);
stream1.Close();

Это фактически читает файл в список, но сохраняет только нули и 0. Это правильно? Все ссылки находятся в правильном месте с виду этого. Это просто мой toString() на моих классах, которые запутались?

Спасибо.

edit: Ниже мой класс и его переменные-члены, которые я пытаюсь чтобы десериализовать вместе с фрагментом JSON и моим переопределением toString.

[DataContract]
public class Country
{
    #region Member Variables    private string m_name;
    private string m_capital;
    private string m_region;
    private string m_subRegion;
    private int m_population;
    private List<Currency> m_currency = new List<Currency>();
    private List<Language> m_language = new List<Language>();

// Остальная часть класса здесь

public override string ToString()
    {
        return "The country name is " + Name + "\n" + "The country capital is " + Capital + "\n" + "The country region is " + Region
            + "\n" + "The country sub region is " + SubRegion + "\n" + "The country population is " + Population + "\n"
            + "The country currency is " + Currencies + "\n" + "The country language is " + Languages;
    }

/ ----------------------------------------------- --------------- /

[
{
  "currencies": [
    {
      "code": "AFN",
      "name": "Afghan afghani",
      "symbol": "؋"
    }
  ],
  "languages": [
    {
      "iso639_1": "ps",
      "iso639_2": "pus",
      "name": "Pashto",
      "nativeName": "پښتو"
    },
    {
      "iso639_1": "uz",
      "iso639_2": "uzb",
      "name": "Uzbek",
      "nativeName": "Oʻzbek"
    },
    {
      "iso639_1": "tk",
      "iso639_2": "tuk",
      "name": "Turkmen",
      "nativeName": "Türkmen"
    }
  ],
  "name": "Afghanistan",
  "capital": "Kabul",
  "region": "Asia",
  "subregion": "Southern Asia",
  "population": 27657145
}

]

0 ответов