teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

現状の回避方法を追記しました

2020/12/14 09:16

投稿

honjoriki
honjoriki

スコア81

title CHANGED
@@ -1,1 +1,1 @@
1
- JsonUtility.ToJson() でシリアライズしたクラス配列に初期値が入る問題に関
1
+ JsonUtility.ToJson() でシリアライズしたクラス配列に初期値が入る問題を回避たい
body CHANGED
@@ -107,4 +107,23 @@
107
107
  ![イメージ説明](5e2a2c0d249ef06f530386ed767b74db.png)
108
108
 
109
109
  # 開発環境
110
- - Unity 2019.4.15f
110
+ - Unity 2019.4.15f
111
+
112
+ # 現状の回避方法
113
+ ```
114
+ // 配列をJSONに変更(外部にデータ保存のため)
115
+ public void ConvertToJson()
116
+ {
117
+ string json = JsonUtility.ToJson(ItemManager.Instance);
118
+ Debug.Log(json);
119
+
120
+ // 現状の回避方法として、配列要素が初期値になっていたら
121
+ // nullにするという方法をとっていますが、そのためにこの処理を追加するのもつらいです
122
+ for(int i = 0; i < itemDataArray.Length; i++) {
123
+ if(itemDataArray[i].NAME == null) {
124
+ itemDataArray[i] = null;
125
+ }
126
+ }
127
+ }
128
+
129
+ ```