我在asp.net ashx文件中有这个代码:
jsonString="{'id':'54','name':'reza'}";
JavaScriptSerializer j = new JavaScriptSerializer();
var a = j.Deserialize(jsonString, typeof(object));
并获取Json字符串并转换为'a'对象,我如何获得a的值? 例如,我需要将id字段值输入[id,54]?
答案 0 :(得分:1)
由于您没有为反序列化指定强类型目标类型(object
除外),JavaScriptSerializer
将返回Dictionary<string, object>
并且您将拥有按如下方式访问它:
string jsonString = "{'id':'54','name':'reza'}";
JavaScriptSerializer j = new JavaScriptSerializer();
dynamic data = j.Deserialize(jsonString, typeof(object));
string id = data["id"]; // equals 54
然而,您最好定义自己的自定义类型以访问反序列化的数据。类似的东西:
public class Person
{
public string id { get; set; }
public string name { get; set; }
}
string jsonString = "{'id':'54','name':'reza'}";
JavaScriptSerializer j = new JavaScriptSerializer();
Person person = j.Deserialize<Person>(jsonString);
string id = person.id; // equals 54