C#JsonConvert.DeserializeObject失败,因为JSON数据有时包含一个数组,有时不包含

时间:2017-03-23 09:02:12

标签: c# json serialization

我正在使用返回JSON数据的第三方API。然后我将其反序列化为包含多个对象的C#类。

问题是我有时会收到错误解释:

  

无法将当前JSON数组(例如[1,2,3])反序列化为(我的对象类型)

那:

  

JsonArrayAttribute也可以添加到类型中以强制它从JSON数组反序列化

所以,我用[JsonArray]属性

装饰对象

然而,我接到一条错误消息解释:

  

无法将当前JSON对象(例如{\“name \”:\“value \”})反序列化为(我的对象类型)

那:

  

JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化

似乎有时API会返回JSON数组对象,有时却不会。

问题是我如何定义/装饰我的对象或定义类是否足够灵活以处理?这可能吗?

这是生成“无法反序列化当前JSON数组”错误的数据:

"account_id": "0",
"account": [],
...

这是生成“对象”错误的数据(当我将其装饰为[JsonArray]时):

"account_id": "3776",
"account": {
"id": 3776,
"name": "VISA Debit APP",
...
},
...

显然,我希望将其反序列化为C#类,以便以结构化类型安全的方式处理数据。我无法控制这些数据的结构,所以我不得不处理这个问题。

非常感谢任何见解。

0 个答案:

没有答案