.NET 4.5 C# | NewTonSoft JSON

260
15 октября 2017, 20:43
RootObject root = new RootObject();
string json = JsonConvert.SerializeObject(root, Formatting.Indented);

В итоге получаем

{ "Billing": null, "Payment": null }

А не это

{
  "FirstName": "123123",
  "LastName": null,
  "Email": null,
  "Telephone": null,
  "Address": null,
  "City": null,
  "State": null,
  "Country": null,
  "Zip": 0
},
  "PaymentType": null,
  "CardNumber": null,
  "CVV": 0,
  "ExpYear": 0,
  "ExpMonth": 0
}
}

Answer 1

У вас нету инициализации объектов, которые вы хотите сериализировать.

Вы пишите:

public class RootObject
{
    public Billing Billing {get; set;}
}

Вы грубо говоря сказали: "Здесь у меня должен быть объект типа Billing и назвать его надо также, Billing". Ок, представим, что у нас там будет public string Billing {get; set;}, что тогда? Верно, у нас будет NULL объект, ибо мы его не инициализировали и не задали ему каких либо данных.

Получается, для того, что бы в объекте были данные, его надо инициализировать, то есть в вашем случае это:

  • Либо:

    public Billing Billing {get; set;} = new Billing();
    
  • Ну или:

    RootObject root = new RootObject();
    root.Billing = new Billing();
    
  • Или если класс Billing изначально пустой, то:

    Billing billing = new Billing();
    billing.FirstName = "123123";
    RootObject root = new RootObject();
    root.Billing = billing;
    

Итог: Вы отдаете сериализации пустые классы, которые не как не инициализированы, что равнозначно значению NULL.

READ ALSO
Наследование классов, переопределение

Наследование классов, переопределение

Делаю потиху задания из решебника и это на третьем пункте меня выбило немного из колеи

210
Сериализация Item'ов

Сериализация Item'ов

Подскажите, как сериализовать созданные Item'ы в панели, их текст, значение CheckBox и кнопку Delete, и дессериализовать при перезапуске программы?...

187
Получение координат в C#

Получение координат в C#

Собственно как получить координаты через gps/wifi/ip? В интернете нашёл видео, где пишут что-то типа

244
Как перебрать массивы массивов через foreach

Как перебрать массивы массивов через foreach

Пытаюсь перебрать массивы массивов через foreach: Ошибка

302