我有一个如下的JSON块:
{
"FirstName": "JON",
"LastName": "BAYN",
"Data": [
{
"Plan": "DAY"
}
]
}
我已经使用JavaScriptSerializer之类的构建了它
JavaScriptSerializer serializer_user = new JavaScriptSerializer();
dynamic jsonObject = serializer_user.Deserialize<dynamic>(content_);
dynamic firstname = jsonObject["FirstName"];
firstname = jsonObject["FirstName"];
但是我无法读取嵌套的“详细信息” >>“计划”。我一直无法拼凑如何实现这个目标。
答案 0 :(得分:2)
首先,使模型类成为您的json模式:
public class Rootobject
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public int MemberID { get; set; }
public Detail[] Details { get; set; }
}
public class Detail
{
public string Plan { get; set; }
public string Product { get; set; }
public DateTime ProductStartDate { get; set; }
public DateTime ProductEndDate { get; set; }
public string Flag { get; set; }
}
现在您可以将json字符串反序列化为RootObject(使用Json.NET而不是JavaScriptSerializer
,因为它是faster etc):
using Newtonsoft.Json;
..
// If Json.NET is not option:
// var obj = new JavaScriptSerializer().Deserialize<Rootobject>(json)
var obj = JsonConvert.DeserializeObject<Rootobject>(json);
现在您可以访问如下的对象结构:
if (obj.Details != null)
{
foreach (var detail in obj.Details)
{
Console.WriteLine(detail.Plan);
}
}
答案 1 :(得分:0)
如果您不想为其创建新的类并反序列化它,则可以执行正则表达式。