[請益] 關於把陣列轉json的問題

作者: kons (kons)   2020-12-01 03:42:22
在網路看了一些教學,自己試著做做看,但轉出來的json都只有{},內容都空的。
https://i.imgur.com/h9fmUM6.jpg
https://i.imgur.com/ZC7oDkn.jpg
我用Debug.Log看,都有存到陣列中,
問題應該是出在轉字串的時候。
如果我把
data = JsonUtility.ToJson(saveBag)
改成
data = JsonUtility.ToJson(saveBag.bagItem[1])
在Debug的地方可以看到顯示字串。
但就是沒辦法存兩筆以上的資料。
教學反覆看了幾次還是找不到答案,
請問是我哪裡理解錯誤?謝謝。
作者: petitbleu (*大捲兒*)   2020-12-01 11:16:00
試試 JsonUtility.ToJson(saveBag.bagItem)
作者: wix3000 (癢,好吃)   2020-12-01 12:24:00
你的兩個物件都要加上 [Serilizable] 的屬性類別
作者: kingroy (手殘總比腦殘好)   2020-12-01 20:42:00
同二樓加在playitem的class前就ok原本的忘了是不是Dictionary包list之類的會有問題 其他簡單的自定義class應該沒問題
作者: wix3000 (癢,好吃)   2020-12-01 21:31:00
沒這回事,你加上我說的屬性就對了,記得 using System
作者: ctrlbreak   2020-12-02 00:32:00
class要繼承 MonoBehaviour 或 ScriptableObject
作者: cjcat2266 (CJ Cat)   2020-12-02 00:36:00
把資料打包成純資料struct吧,MonoBehaviour和Sprite應該有不少跟Serializable attribute不合的非純資料子物件
作者: kingroy (手殘總比腦殘好)   2020-12-06 11:09:00
阿 拿掉monobehaviour才對 單純的class拿來轉就ok
作者: jackyT (Ubuntu5566)   2020-12-06 11:15:00
不能轉List要一般陣列
作者: NDark (溺於黑暗)   2020-12-06 11:22:00
我記得某一版之後List是可正常轉的.其他容器就不行.
作者: kingroy (手殘總比腦殘好)   2020-12-08 10:16:00
Dictionary比較煩,還有List Dictionary互包那種
作者: linaomasa (沒穿褲子先生)   2020-12-09 17:16:00
用newton啊 好用
作者: kingroy (手殘總比腦殘好)   2020-12-09 18:33:00
Newton兩年前某版會有問題,iOS審查卡那邊
作者: NDark (溺於黑暗)   2020-12-09 19:31:00
newton 會卡 .net framework 版本. 當時要選用適當的版本.可以選用其他也支援這些容器的 json library
作者: kingroy (手殘總比腦殘好)   2020-12-10 11:49:00
或是自己寫個helperclass 基本上Stackoverflow有一堆可參考
作者: gsyung (阿爾.克萊茵)   2020-12-13 15:26:00
newtonsoft.json 用 https://github.com/Votrubec/Newtonsoft.Json-AOT 這個版本可處理ios過不了的問題

Links booklink

Contact Us: admin [ a t ] ucptt.com