c# - 序列化对 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++ - 对已定义的“功能”的未定义引用
- r - 将导入包与 drake 一起使用
- string - Bash - 如何替换某个索引处的字符(包括索引零)
- ios - 第二次按下后如何将按钮背景颜色恢复为默认值?
- .net - Modbus TCP Little Endian 字节交换
- javascript - 我想在 JavaScript 中更改字体类型和大小
- ruby-on-rails - 在不更改实际时间的情况下将时间转换为时区
- c# - 在 C# WCF DataMember 集合上构建 SOAP 消息的问题
- php - 为什么 laravel 在控制台上连接到 mysql 而不是在 api 或 web 上?
- javascript - 如何将音频上下文中的当前时间链接到输入类型 = 范围?