Почему я не могу покинуть json в объект со свойством C#

Место общения программистов C#
Ответить
Anonymous
 Почему я не могу покинуть json в объект со свойством

Сообщение Anonymous »

с .net 8, используя System.text.json , я могу сериализовать/десериализовать список . Я также могу сериализовать объект со свойством списка типов . Тем не менее, я не могу покинуть этот объект. Вот тест, который демонстрирует проблему: < /p>
using System.Text.Json;

namespace JsonDeserializationTests
{
public class Parent
{
public List Children { get; } = new List();
}

public class Child
{
public Child(string name)
{
Name = name;
}

public string Name { get; set; }
}

public class JsonSerializationTestSimple
{
[Fact]
public void CanSerializeAndDeserialize()
{
var parent = new Parent();
parent.Children.Add(new Child("Child A"));
parent.Children.Add(new Child("Child B"));

// Serialize a List instance directly.
var childrenJson = JsonSerializer.Serialize(parent.Children);
var deserializedChildren = JsonSerializer.Deserialize(childrenJson);
var childrenJson2 = JsonSerializer.Serialize(deserializedChildren);
Assert.True(childrenJson == childrenJson2); // This succeeds
// Both have the same JSON:
// [{"Name":"Child A"},{"Name":"Child B"}]

// Now try to serialzie the entire Parent object that has a List property.
var parentJson = JsonSerializer.Serialize(parent);
var deserializedParent = JsonSerializer.Deserialize(parentJson);
var parentJson2 = JsonSerializer.Serialize(deserializedParent);
Assert.True(parentJson == parentJson2); // This fails
// parentJson is as expected:
// {"Children":[{"Name":"Child A"},{"Name":"Child B"}]}
// but parentJson2 shows we did not deserialize the Children property:
// {"Children":[]}
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/795 ... t-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»