2012-03-30 123 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庫。如果你不需要花哨的東西,它可以很好地處理動態對象類型。