【发布时间】:2016-10-21 21:08:11
【问题描述】:
如何将字符串反序列化为 Json 对象,其中 json 对象可以是单个或数组,现在我有这个,它可以工作,但它是一个 hack(伪):
class MyObject{
public string prop1
public string prop2;
}
class MyList{
List<MyObject> objects {get; set; }
}
class Test{
MyList list = JsonSerialzer.Deserialize<MyList>(str);
//if list is null - it can be single
if(list == null){
MyObject myObject = JsonSerializer.Deserialize<MyObject>(str);
if(myObject != null)
list.add(myObject);
}
}
如上所示,问题是我从另一个服务接收的 json 字符串可以是单个或列表。如何优雅地处理这个问题?
【问题讨论】:
-
问题更多在于您的 JSON 消息,属性应该始终是 1 个对象或数组。如果它是一个数组并且结果集只有一个结果,那么它仍然应该封装在一个数组中,这样你就不会遇到你遇到的问题。这是另一个排名靠前的 SO 答案,可以帮助您stackoverflow.com/questions/7895105/…
-
你发给我的链接不是和我一样吗?
-
也许,我没有比较。但是这里的答案是对您的 SO 的正确答案。
标签: c# json servicestack jsonserializer