小编Ric*_*gle的帖子

如何使用 JsonConvert.DeserializeObject 忽略空数组?

我正在使用此调用从 JSON 中读取对象列表:

Rootobject userInfo = JsonConvert.DeserializeObject<Rootobject>(File.ReadAllText(strFileName));
Run Code Online (Sandbox Code Playgroud)

但我得到了一个例外Cannot deserialize the current JSON array。如果类对象之一中的数组之一为空。只要有数据,一切正常。

下面是一个 JSON 的例子,它导致了反序列化器:

这是 Venue 对象的正常数据类型:

"venue":  {
            "venue_id":  696895,
            "venue_name":  "Blackfinn Ameripub",
            "venue_slug":  "blackfinn-ameripub",
            "primary_category":  "Food",
            "parent_category_id":  "4d4b7105d754a06374d81259",
            "categories":  {
                "count":  1,
                "items":  [
                            {
                                "category_name":  "American Restaurant",
                                "category_id":  "4bf58dd8d48988d14e941735",
                                "is_primary":  true
                            }
                        ]
            },
            "is_verified":  false
        },
Run Code Online (Sandbox Code Playgroud)

这是导致异常的原因,一个空数组:

"venue":  [

        ],
Run Code Online (Sandbox Code Playgroud)

我已经使用了试图JsonSerializerSettings选择,包括DefaultValueHandlingNullValueHandlingMissingMemberHandling,但他们都不来防止错误。

知道如何反序列化 JSON 并忽略数据中的任何空数组吗?我希望它可以处理任何空数组,而不仅仅是上面的 object 示例Venue

发现新问题 - 03/17/2018 <<

嗨,下面的转换器一直工作得很好,但是我从我的 json …

json.net

6
推荐指数
1
解决办法
6085
查看次数

标签 统计

json.net ×1