读取序列化的第一项 JSON
Reading first item in serialized JSON
我正在尝试从反序列化的 JSON 对象中的第一项中获取名称。
当我调试代码时,我发现jsonObject被转换成了字典。
如何从 jsonObject 获取第一项值。
var myJson= [
{name:'abc',city:'dallas'},
{name:'def',city:'redmond'},
{name:'ghi',city:'bellevue'},
]
JavaScriptSerializer jss = new JavaScriptSerializer();
var jsonObject = jss.Deserialize<dynamic>(myJson);
NameInFirstItem = jsonObject[0].name;
试试这个:
var NameInFirstItem = jsonObject[0]["name"];
您可以使用
反序列化 json
public class Details
{
public string name { get; set; }
public string city { get; set; }
}
var res = JsonConvert.DeserializeObject<Details[]>(json);
var name = res[0].name;
创建一个 class
来保存生成的对象:
public class MyJsonResult
{
public string name { set; get; }
public string result { set; get; }
}
static void Main(string[] args)
{
string myJson = "[{ name: 'abc',city: 'dallas'},{ name: 'def',city: 'redmond'},{ name: 'ghi',city: 'bellevue'}]";
JavaScriptSerializer jss = new JavaScriptSerializer();
List<MyJsonResult> jsonResultList = jss.Deserialize<List<MyJsonResult>>(myJson);
var NameInFirstItem = jsonResultList.FirstOrDefault().name;
}
或者如果你坚持使用动态:
static void Main(string[] args)
{
string myJson = "[{ name: 'abc',city: 'dallas'},{ name: 'def',city: 'redmond'},{ name: 'ghi',city: 'bellevue'}]";
JavaScriptSerializer jss = new JavaScriptSerializer();
var jsonResultList = jss.Deserialize<List<dynamic>>(myJson);
// get first value by key from the dictionary
var NameInFirstItem = jsonResultList.FirstOrDefault()["name"];
}
我更喜欢第一种方法。如果将第三个 属性 添加到 json,您可能会对生成的对象的类型感到困惑,它可能是列表中每个对象的键值对列表。
我正在尝试从反序列化的 JSON 对象中的第一项中获取名称。 当我调试代码时,我发现jsonObject被转换成了字典。 如何从 jsonObject 获取第一项值。
var myJson= [
{name:'abc',city:'dallas'},
{name:'def',city:'redmond'},
{name:'ghi',city:'bellevue'},
]
JavaScriptSerializer jss = new JavaScriptSerializer();
var jsonObject = jss.Deserialize<dynamic>(myJson);
NameInFirstItem = jsonObject[0].name;
试试这个:
var NameInFirstItem = jsonObject[0]["name"];
您可以使用
反序列化 json public class Details
{
public string name { get; set; }
public string city { get; set; }
}
var res = JsonConvert.DeserializeObject<Details[]>(json);
var name = res[0].name;
创建一个 class
来保存生成的对象:
public class MyJsonResult
{
public string name { set; get; }
public string result { set; get; }
}
static void Main(string[] args)
{
string myJson = "[{ name: 'abc',city: 'dallas'},{ name: 'def',city: 'redmond'},{ name: 'ghi',city: 'bellevue'}]";
JavaScriptSerializer jss = new JavaScriptSerializer();
List<MyJsonResult> jsonResultList = jss.Deserialize<List<MyJsonResult>>(myJson);
var NameInFirstItem = jsonResultList.FirstOrDefault().name;
}
或者如果你坚持使用动态:
static void Main(string[] args)
{
string myJson = "[{ name: 'abc',city: 'dallas'},{ name: 'def',city: 'redmond'},{ name: 'ghi',city: 'bellevue'}]";
JavaScriptSerializer jss = new JavaScriptSerializer();
var jsonResultList = jss.Deserialize<List<dynamic>>(myJson);
// get first value by key from the dictionary
var NameInFirstItem = jsonResultList.FirstOrDefault()["name"];
}
我更喜欢第一种方法。如果将第三个 属性 添加到 json,您可能会对生成的对象的类型感到困惑,它可能是列表中每个对象的键值对列表。