JsonUtilityの配列パースでハマったのでメモ
環境
- Unity 2019.3.3f1
前提
下記のようなjsonをパースするとする
{ "persons":[ { "name":"Yamada" "age":10 }, { "name":"Tanaka", "age":20 } ] }
ダメな例
public class Persons { public Person[] persons; } public class Person { public string name; public int age; } // 中略 void hogehoge() { var arr = JsonUtility.FromJson<Persons>("json-text"); }
良い例(改変部分のみ)
[System.Serializable] public class Persons { public Person[] persons; } [System.Serializable] public class Person { public string name; public int age; } // 略
ポイントは、[System.Serializable]です。
どこかのサイトでアクセス修飾子がpublicであれば、不要みたいなのを見た気がするのですが、ないとnullが返却されるという自体が発生しました。
配列でない場合は、[System.Serializable]がなくてもパースできてしまうのでハマりました。