【发布时间】:2016-08-12 12:12:44
【问题描述】:
假设有关文档的信息存储在条形码中,并且信息的结构根据文档类型而有所不同。但是事先不知道文件的类型;条形码告诉我们我们正在处理什么样的文件:
条形码值不会像这样存储分隔字符串:
author|date|subject
author|date|subject|approvedby1;approvedby2
但将包含 json 表示法:
FOO|{"author": "Smokey", "date": "01/01/2015", "subject": "widgets"}
GOO|{"author": "Smokey", "date": "01/01/2015", "subject": "widgets", "approvals": ["Mike","Jane"]}
当我们获取条形码文本数据时,我们从| 分隔符左侧的值看到我们需要实例化FOO 或GOO。我们抓取| 右侧的字符串并将其提供给JsonConvert。
如何告诉JsonConvert.DeserializeObject<some type> 从它的 json 表示中返回一个 GOO 对象?
var myGoo = JsonConvert.DeserializeObject<?>(jsonStringGOO)
尖括号< >之间是什么?
编辑:理想情况下,不使用 switch 语句。
假设当前命名空间包含所有可能类型的类定义。
【问题讨论】:
标签: c# json reflection