首页 > 解决方案 > 序列化对 Dict 中 k 的引用在 C# 中使用 Json

问题描述

到目前为止,我对 Json 的唯一体验大部分是开箱即用的包装器,所以请多多包涵……所以,我有一个带有文本的 FlowDocument。文字里面的文字可以是超链接。这些超链接指向它所代表的对象。作为一个简短的例子:

“<em>我的很可爱。”</p>

在这个例子中,dog 是一个指向具有一些基本字段的 Dog 类的超链接,例如:

name: Fido
owner: me
isGoodBoy: yes

在幕后,这种耦合是通过 Dictionairy<Hyperlink, Dog> 完成的

现在我想在不丢失层次结构/引用的情况下序列化这个结构因为文档有对字典的引用,所以我需要先序列化它。当我在这个鸟瞰视图级别上坚持开箱即用的参考处理时,我得到:

{
    "$id": "1",
    {
        “dog” : { “name” : “Fido”,“owner”: “me”,“isGoodBoy”: “yes”},
    }
}

和: SerializedFlowDocument 上的 "$id": "2"

序列化文档本身不是问题,因为我不需要序列化任何标记,简化后,我可以从每次运行中获取字符串并将它们放入数组中。我最终会得到类似的东西

serializedDoc[0] =“My ”
serializedDoc[1] =”dog”
serializedDoc[2] =“ is very sweet.”

但是 dog 是一个超链接,所以我宁愿看到 serializedDoc[1] = "$ref": "1" 这让我回到了字典。有没有办法指定我想要引用 k/v 对中的密钥而不是整个字典?在这行中的一些东西:

{
    {
        “dog”
        "$id": "1": { “name” : “Fido”,“owner” : “me”,“isGoodBoy” : “yes”},
    }
}

标签: c#serializationjson.net

解决方案


推荐阅读