1

我正在尝试使用 using 读取 JSON Windows.Data.Json。但是由于某种原因 GetNamedObject() 以一种非常愚蠢的方式返回我的对象​​..

这是我的 JSON:

{
   "schedule":{
      "schedule":{
         "Monday":{
            "1":{
               "class":"oo5",
               "classroom":"K53"
            },
            "2":{
               "class":"oo5",
               "classroom":"K53"
            }
         },
         "Tuesday":{
            "2":{
               "class":"biol6",
               "classroom":"S12"
            },
            "8":{
               "class":"loC",
               "classroom":"126"
            },
            "9":{
               "class":"loC",
               "classroom":"126"
            }
         },
         "Wednesday":{
            "3":{
               "class":"entlC",
               "classroom":"K51"
            }
         },
         "Thursday":{
            "3":{
               "class":"wisb3",
               "classroom":"S29"
            },
            "8":{
               "class":"inf8",
               "classroom":"S22"
            }
         },
         "Friday":{
            "1":{
               "name":"dhr. F. Lange de",
               "class":"schk1",
               "classroom":"S09"
            }
            "7":{
               "name":"mw. O. Beek ter",
               "class":"nat2",
               "classroom":"S10"
            }
         }
      }
   }
}

注意:这是一个缩短的版本。

我试图按照给定的顺序读出日期:“星期一、星期二、星期三、星期四、星期五”。

我正在使用以下 C# 代码:

JsonObject JSON_OBJ_root;
JsonObject.TryParse(return_json, out JSON_OBJ_root);
JsonObject JSON_OBJ_schedule = JSON_OBJ_root.GetNamedObject("schedule");
JsonObject JSON_OBJ_days = JSON_OBJ_schedule.GetNamedObject("schedule"); //I think this is the problem

当我使用调试器和查找时JSON_OBJ_days

http://i.stack.imgur.com/WX5I5.png

翻译:

Woensdag = Wednesday
Vrijdag = Friday
Donderdag = Thursday
Dinsdag = Tuesday
Maandag = Monday

因此,出于某种原因,GetNamedObject() 以随机顺序返回其对象。这只是脑筋急转弯!谁能告诉我这是为什么以及如何解决这个问题?

4

1 回答 1

0

对象在 JSON 中没有顺序。您应该使用要保存项目顺序的数组。

你的 JSON 应该是这样的:

{
    "schedule": {
        "schedule": [
            {
                "name_day": "Monday",
                "schedule": [
                    {
                        "class": "oo5",
                        "classroom": "K53"
                    },
                    {
                        "class": "oo5",
                        "classroom": "K53"
                    }
                ]
            },
            {
                "name_day": "Tuesday",
                "schedule": [
                    {
                        "class": "oo5",
                        "classroom": "K53"
                    },
                    {
                        "class": "oo5",
                        "classroom": "K53"
                    }
                ]
            }
        ]
    }
}

注意 [ 而不是 {。“[”代表一个数组,其中在描述对象时使用 {。

于 2013-04-29T10:17:10.133 回答