我在C#中使用一些API工作,它在JSON中返回带有404和200(!)状态代码的“错误”,但结构不同。
1)HTTP状态200:
{ "Errors": "Duplicated" }
2)HTTP状态200:
{ "Errors": {"some_key":"Invalid"} }
3)HTTP状态404:
{ "Errors": "some_key1":["Invalid"], "some_key2":["Invalid"] }
1 - 地图到字符串 - 好的,但不是Dictionary<string,string>
2 - 映射到Dictionary<string,string>
,但不映射到字符串
3 - 将其映射到ModelState Dictionary<string,List<string>>
确定,因为StatusCode是diff(我在Json字符串中重命名为“Errors”并将其映射到diff属性名称。
唯一的问题是案例1和案例2,因为两者都返回了相同的HTTP状态代码和相同的节点名称“错误”。
是否有人处理过这些案件?你怎么处理它们?是否有任何Netwon Json deserialzier设置将Case 2扁平化为仅使用1,2,3 ..自动生成密钥的字符串或Case 1进入字典?
还有其他想法吗?
干杯
答案 0 :(得分:0)
使您的属性成为动态对象。 https://msdn.microsoft.com/en-us/library/dd264736.aspx。然后根据可用的属性,您可以转换它或直接从动态读取属性。