我有一个 json 如下:
"[{"a":"b","c":"d"},{"a":"e","c":"f"},{"a":"g","c":"h"}]"
现在我想将其反序列化为匿名类型“foo”的对象列表
var foo=new { a=string.empty , c=string.empty };
代码是:
ServiceStackJsonSerializer Jserializer = new ServiceStackJsonSerializer();
dynamic foos = Jserializer.Deserialize<List<foo.GetType()>>(jsonString);
但不工作。
update :
替换ServiceStack
with JavascriptSerializer
并经过dictionary[]
无需解决问题anonymous
Type
JavaScriptSerializer jSerializer = new JavaScriptSerializer();
var Foos = jSerializer.Deserialize<Dictionary<string, object>[]>(jsonString);
我不知道是什么Jserializer
类是,但我确实知道JavaScriptSerializer http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx班级。不幸的是,它不支持反序列化为匿名类型。您必须创建一个像这样的具体类型:
class Foo
{
public string a { get; set; }
public string c { get; set; }
}
使用以下代码对我有用:
const string json =
@"[{""a"":""b"",""c"":""d""},{""a"":""e"",""c"":""f""},{""a"":""g"",""c"":""h""}]";
var foos = new JavaScriptSerializer().Deserialize<Foo[]>(json);
变量foos
将包含一个数组Foo
实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)