gpt4 book ai didi

c# - 如何将类实例转换为 JsonDocument?

转载 作者:行者123 更新时间:2023-12-03 18:33:58 25 4
gpt4 key购买 nike

假设我们有一个如下所示的实体类:

public class SerializedEntity
{
public JsonDocument Payload { get; set; }

public SerializedEntity(JsonDocument payload)
{
Payload = payload;
}
}

根据 npsql这会生成一个包含 payload 列的表类型 jsonb对于这个类是正确的。

现在我想做的是获取任何类实例并将其存储为 payload在此表中,例如:
public class Pizza {
public string Name { get; set; }
public int Size { get; set; }
}

然后应该可以作为具有以下结构的对象进行检索:
{Name: "name", Size: 10}

所以我需要这样的东西:
var pizza = new Pizza("Margharita", 10);
var se = new SerializedEntity(someConverter.method(pizza))

最佳答案

System.Text.Json这有点尴尬,但可能:

using System.Text.Json;
using System.Text.Json.Serialization;

var pizza = new Pizza("Margharita", 10);
var se = new SerializedEntity(JsonDocument.Parse(JsonSerializer.Serialize(pizza)));

自(我认为)v3.0 以来,它已内置于 dotnet 核心,因此您不需要任何额外的 3rd 方库。只是不要忘记 using s。

不过,可能有一些技巧可以使解析效率更高一些(使用异步 API,也许或者像 Magnus 建议的那样,通过使用 SerializeToUtf8Bytes 序列化为二进制文件)。

我找不到任何直接来自 T 的方法或 objectJsonDocument . 我无法相信这是不可能的。如果您知道这是如何工作的,请发表评论或添加您的答案。

关于c# - 如何将类实例转换为 JsonDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60989709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com