2012-03-30 89 views
0

我需要解析JSON文件的文件名看起来如下:如何获得令牌

{"20120101":{"Jeff":{"Status":"Sleepy", "Weight":212}, "Cathy":{"Status":"Angry", "Weight":172}} 
{"20120102":{"Jeff":{"Status":"Alert", "Weight":207}, "Cathy":{"Status":"Sick", "Weight":168}} 

我不能想出一个办法来提取日期(20120101和20120102)和名称(杰夫和卡西)从我的JSON。我尝试如下所示:

private void LoadFile(string fileName) 
    { 
     var json = File.ReadAllText(fileName); 
     JObject days = JObject.Parse(json); 
     foreach (var dayAsObject in days) 
     { 
      var day = (JToken) dayAsObject; 
      var a = day.Root.ToString(); 
      var t = day.ToString(); 
      var z = day.First; 
      Console.WriteLine(day+t+z+a); 
     } 

回答

1

更好地制定JSON看起来像

{"20120101":{ "name":"Jeff", "Status":"Sleepy", "Weight":212}, { "name":"Cathy", "Status":"Angry", "Weight":172}} 

然后,它是很容易得到一天[“名称”]。我会建议修改你的json。如果你绝对不能,我认为你正在寻找的财产是PropertyName。

我倾向于使用内置的System.Web.Script.Serialization JSON库。如果你不需要花哨的东西,它可以很好地处理动态对象类型。