野鳥日記

野鳥と技術のブログ http://www.kiriya-system.com/

unityでネストの深いJSONを扱ってみる(MiniJSON編)

unityでネストの深いJSONを扱ってみる(MiniJSON編)

 

http://www.cho-design-lab.com/2013/08/15/unity-minijson-load-json/

 

↑を見ながらMiniJSONを入れる

次に深ーいネストのJSONを読み込む

今回使ったのはこれ

http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html

 

あまりに深いので本体は乗せませんw

 

それをパースするコードが↓

var jsonData = MiniJSON.Json.Deserialize(json) as Dictionary<string,object>;
List<object> Reservations=(List<object>)jsonData["Reservations"];
Dictionary<string,object> Instances=(Dictionary<string,object>) Reservations[0];
List<object> Instances_info=(List<object>) Instances["Instances"];
Dictionary<string,object> Instance_value=(Dictionary<string,object>) Instances_info[0];
print(Instance_value["InstanceId"]);

キャストして代入しまくり。

 

変数に代入せず直接アクセスを試みる

 var jsonData = MiniJSON.Json.Deserialize(json) as Dictionary<string,object>;
        print(
            (
                ((Dictionary<string,object>)
                     ((List<object>)
                        ((Dictionary<string,object>)
                             ((List<object>)
                             jsonData["Reservations"])
                         [0])
                     ["Instances"])    
                 [0])
             ["InstanceId"])
        );

 

もうなにがなにやら・・・

他に書き方あるのかもしれませんが・・・

 

まあ、単なるネタなんですが、

MiniJSONを使うときはシンプルなJSONのほうがいいっぽいぞ!