非常接近How to define variable in class to receive either List<string> or string when deserializing JSON?
我更喜欢使用python解析json。没测试过,但确定能正常工作,现在做了几次。 #PythonForLife
import json
str = '{
"Resource" : ["1", "2"]
}'
j = json.loads(str)
if ( isinstance( str["Resource"], list ):
print(str["Resource"][0]) //or do whatever
else:
print(str["Resource"]) //same
我想知道最佳实践是在C#中做这样的事情。我有一个像
的模型public class RootObject
{
public IEnumerable<string> Resource {get; set;)
}
这是如此脆弱,因为它被硬编码为仅处理集合,并且一旦接收到字符串就中断。我讨厌尝试捕获并使用其他模型,因为这只是一个属性,在同一模型中,我确实有更多类似的东西。为什么这甚至是问题?我在这里链接的是最佳/更好/可行的解决方案吗?
答案 0 :(得分:0)
例如,您应该使用字典而不是列表:
class MyClass
{
public void Test()
{
var x = @"{'Resource' : ['1', '2']}";
var r = JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(x);
}
}
public static void Main(string[] args)
{
var l = new MyClass();
l.Test();
}