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 に答える