假设我们有一个如下所示的实体类:
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
的方法或 object
至 JsonDocument
. 我无法相信这是不可能的。如果您知道这是如何工作的,请发表评论或添加您的答案。
关于c# - 如何将类实例转换为 JsonDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60989709/