我正在将vb项目转换为c#;
除了这一行之外,一切都很好:
information = DirectCast(jsonserializer.Deserialize(jsonString, GetType(List(Of formData))), List(Of formData))我创建了一个与vb相同的类(FormData),而json与vb相同。
public class formData
{
private string part;
private string key;
private string val;
public formData(string part, string key, string val)
{
this.part = part;
this.key = key;
this.val = val;
}
public string Part
{
get { return part; }
set { part = value; }
}
public string Key
{
get { return key; }
set { key = value; }
}
public string Value
{
get { return val; }
set { val = value; }
}
}我该怎么办?
我要用"http://json.codeplex.com/“吗?
发布于 2013-10-31 14:37:17
VB中的Directcast与C#中的类型相同。
所以,我相信你的代码会是这样的:
var jsonserializer = new JavaScriptSerializer();
var information = jsonserializer.Deserialize(jsonString, typeof(List<formData>)) as List<formData>;或
var jsonserializer = new JavaScriptSerializer();
var information = (List<formData>)jsonserializer.Deserialize(jsonString, typeof(List<formData>));两者的区别在于,如果强制转换失败,前者将返回null,而后者将抛出异常。在SO上,作为类型的类型和as之间有一个很好的讨论:
https://stackoverflow.com/questions/19709216
复制相似问题