【问题标题】:How to handle input of varying datatype during deserialization?如何在反序列化期间处理不同数据类型的输入?
【发布时间】:2016-09-01 19:57:15
【问题描述】:

我正在尝试下载其中一个属性为 "easting" 的 json 数据。对于大部分 json 数据集,"easting" 是一个整数,但也有少数情况"easting" 是一个整数列表,如下所示:

"easting" : 357570 ,
...
"easting" : [ 434939, 434942 ] ,

"easting" 的类声明如下时,我的原始代码预计 int

public class Item
{
    public int easting { get; set; }
}

但是,我不断收到错误消息,提示我无法将类型 int 转换为类型 int []。如果我调整类定义以允许easting 的类型为int [],我只会得到相反的错误——我无法将类型int [] 转换为类型int

我该如何处理这个问题?有没有办法在反序列化过程中解释不同的输入数据类型?

【问题讨论】:

  • 你能用动态吗?看看这个:stackoverflow.com/questions/30147272/…
  • 如果您使用的是 Json.net,那么这是 this question 的副本
  • @stuartd 我目前正在使用来自System.Web.Script.SerializationJavaScriptSerializer,尽管我可能会尝试切换到Json.net,因为该示例看起来确实很简单。谢谢。

标签: c# json json.net deserialization json-deserialization


【解决方案1】:

最后,我按照@stuartd 的建议,从JavaScriptSerializer 切换到Json.net 进行反序列化过程,这使我能够跟随question posted here 并解决我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2021-04-04
    • 1970-01-01
    • 2016-02-13
    • 2016-01-13
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多