У меня есть клиент, который отправляет SomeComplexObject
в webservice.Deserialize сложный объект JSON, имеющий DynamicJsonArray для динамического
Я хочу, чтобы веб-сервис не знал о структуре данных, , так что хотите, чтобы данные десериализовались в динамике, которая передается затем методу, который знает, как с ним бороться.
Я использую System.Web.Helpers.Json.Encode()
, Decode()
методы , и у меня есть проблема, когда SomeComplexObject содержит коллекцию. Он десериализуется в DynamicJsonArray, но он как-то недоступен для потребителя данных.
Это модели.
public class Aaa
{
public Bbb B { get; set; }
public List<Ccc> Cccs { get; set; }
}
public class Bbb
{
public long Key { get; set; }
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
}
public class Ccc
{
public string Name { get; set; }
public int Age { get; set; }
}
Будем говорить, что у меня есть myAaa
объект типа Aaa
со свойством типа Bbb
и список из 42 Ccc
объектов.
Сейчас:
var MyAaaSerialized = System.Web.Helpers.Json.Encode(MyAaa);
Тогда я пошлю его, а затем:
var MyAaaDeserialized = System.Web.Helpers.Json.Decode(MyAaaSerialized);
И, наконец: Это код потребителя. Email
и emailService
- Postal
классы.
dynamic email = new Email(template);
email.Data = MyAaaDeserialized;
email.User = user;
this.emailService.Send(email);
Я могу видеть в отправленном письме, что свойства объекта B доступны. Однако свойств членов списка Cccs нет.
Конечно, с email.Data = MyAaa;
все работает нормально.
Есть ли мертвый простой способ сериализации/десериализации сложного объекта, который содержит коллекцию?
Спасибо заранее,
Если вы разместили образец JSON и свойство Data, с которым нам было бы больше играть. –
Вы правы. Благодарю. – leszy77