访问json对象值

本文关键字:对象 json 访问 | 更新日期: 2023-09-27 18:11:32

我有一个这个代码在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] ?

访问json对象值

由于您没有为反序列化指定强类型目标类型(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