【发布时间】:2014-09-01 01:53:41
【问题描述】:
我正在接收不同模式的 json 文件,必须将它们转储到 sql 数据库中。
json 文件具有架构
{'type':'abc','data':{'column1':'x','column2':'y',.........}}
对应于每种类型的架构,我有一个强类型类,其名称与类型相似,但附加了单词“Table”..
例如。 'abcTable' 只有 json.data (column1, column2, ...) 的模式
所以,我可以做的是对主json进行动态反序列化,然后根据类型值对相应数据进行强类型json解析
dynamic jsondata = JsonConvert.DeserializeObject<dynamic>(json);
if (jsonata.type=='abc')
{
var abcobj = JsonConvert.DeserializeObject<abcTable>(jsondata.data);
}
这里我反序列化对象两次,所以看起来不像是正确的做法..
我还有 25 多个这样的模式和类似数量的类/表
所以,我会使用很多 if / else if /else 语句...
我想了解是否有其他更好的方法来解决我正在尝试做的事情..
真诚感谢任何帮助..
谢谢
【问题讨论】:
-
请看我的编辑,我提出了避免很多 if 的代码。