相关疑难解决方法(0)

System.Text.Json 中是否可以进行多态反序列化?

我尝试从 Newtonsoft.Json 迁移到 System.Text.Json。我想反序列化抽象类。Newtonsoft.Json 为此具有 TypeNameHandling。有没有办法通过.net core 3.0 上的 System.Text.Json 反序列化抽象类?

c# json .net-core-3.0 system.text.json

60
推荐指数
6
解决办法
3万
查看次数

System.Text.Json.JsonElement ToObject解决方法

我想知道ToObject<>()Json.NET中System.Text.Json 的等效方法。

使用Json.NET,您可以使用任何JToken一个并将其转换为类。例如:

var str = ""; // some json string
var jObj = JObject.Parse(str);
var myClass = jObj["SomeProperty"].ToObject<SomeClass>();
Run Code Online (Sandbox Code Playgroud)

.NET Core 3的新功能我们将如何做到这一点 System.Text.Json

var str = ""; // some json string
var jDoc = JsonDocument.Parse(str);
var myClass = jDoc.RootElement.GetProperty("SomeProperty"). <-- now what??
Run Code Online (Sandbox Code Playgroud)

最初,我以为只是将JsonElement返回的内容jDoc.RootElement.GetPRoperty("SomeProperty")转换为字符串,然后反序列化该字符串。但是我觉得这可能不是最有效的方法,而且我真的找不到以其他方式进行操作的文档。

c# .net-core-3.0 system.text.json

5
推荐指数
4
解决办法
335
查看次数

为什么 System.Text Json Serialiser 不会序列化这个通用属性,但 Json.NET 会?

我有以下情况。我已经将问题简化为以下示例,尽管我的实际情况更复杂。

System.Text.Json不会完全序列化对象,但Newtonsoft Json.NET会。

假设我有以下类结构。

public class A
{
    public string AProperty { get; set; } = "A";
}

public class A<T> : A where T : class, new()
{
    public T TObject { get; set; } = new T();
}

public class B
{
    public string BProperty { get; set; } = "B";
}

public class B<T> : B where T : class, new()
{
    public T TObject { get; set; } = new T();
}

public …
Run Code Online (Sandbox Code Playgroud)

c# json.net .net-core system.text.json

5
推荐指数
1
解决办法
3890
查看次数

反序列化具有混合值 System.Text.JSON 的 JSON 数组

我正在尝试创建一个在 .net core 3.1 中呈现的页面,该页面基于 JSON 呈现页面。

如何反序列化本文末尾的 JSON?

我尝试反序列化它,但它不起作用,因为我丢失了每个组件的数据,因为 Page 类有一个List<Component>- 但我需要它是不同组件的列表。

页面模型:

public class Page
    {
        public int id { get; set; }
        public string pagename { get; set; }
        public string metatitle { get; set; }
        public string metadescription { get; set; }
        public string created_at { get; set; }
        public string updated_at { get; set; }
        public List<Component> components { get; set; }
    }

    public class Pages
    {
        public List<Page> pages { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# inheritance json system.text.json

5
推荐指数
1
解决办法
8854
查看次数