【问题标题】:How to get the name of the token如何获取令牌的名称
【发布时间】:2012-03-30 16:33:26
【问题描述】:

我需要解析如下所示的 json 文件:

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

我想不出办法从我的 json 中提取日期(20120101 和 20120102)和姓名(Jeff 和 Cathy)。我的尝试如下:

   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);
        }

【问题讨论】:

    标签: json c#-4.0 json.net


    【解决方案1】:

    更好的 json 格式看起来像

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

    那么很容易得到day["name"]。我建议修改你的json。如果您绝对不能,我认为您要查找的属性是 PropertyName。

    我倾向于使用内置的 System.Web.Script.Serialization JSON 库。如果您不需要做花哨的东西,那么动态对象类型非常适合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2022-01-13
      • 2021-09-16
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      相关资源
      最近更新 更多