我有一个asp.net MVC的网站,我在JSON字符串从数据库中读取。 这是在DB以下JSON。 它看起来是这样的:
{"description": "Test", "contacts": ["joe@gmail.com", "bill@yahoo.com"], "enabled": true}
或这个:
{"description": "Test", "contacts": "joe@gmail.com, bill@yahoo.com", "enabled": true}
所以你可以看到,联系人字段是:
- 的字符串(具有项由逗号分隔)
- 字符串的数组。
我想转换到这个类:
public class MyJob
{
public string description;
public string[] contacts;
public string enabled;
}
当我尝试分配只是一个字符串(改变上述这样的:公共字符串接触;)使用JavascriptSerializer():
var serializer = new JavaScriptSerializer();
string contacts = serializer.Deserialize<MyJob>(theAboveJsonString).contacts;
我得到在其阵列中的情况下,这个错误: 类型“System.String”不支持数组的反序列化。
什么是去了解这个反序列化处理的情况下,最好的方法:
- 字符串
- 字符串的数组。
联系人场。 我很高兴地把所需要的任何条件逻辑。 。
我尝试这样做:
var contacts = serializer.Deserialize<MyJob>(theAboveJsonString).contacts;
if (contacts is string)
{
jobInfo.contacts = contacts;
}
else
{
jobInfo.contacts = String.Join("; ", contacts );
}
但这似乎并没有解决,因为我仍然得到它时,一个数组上述错误