作者kons (kons)
看板GameDesign
標題[請益] 關於把陣列轉json的問題
時間Tue Dec 1 03:42:22 2020
在網路看了一些教學,自己試著做做看,但轉出來的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的地方可以看到顯示字串。
但就是沒辦法存兩筆以上的資料。
教學反覆看了幾次還是找不到答案,
請問是我哪裡理解錯誤?謝謝。
--
至今我仍然深深相信,我是個
帥哥,不過是
量子力學定義中的
帥哥。
當沒人觀測我的時候,我肯定是全地球最帥的男人。
Line:kons0815 --
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.32.178 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1606765345.A.6CA.html
→ petitbleu: 試試 JsonUtility.ToJson(saveBag.bagItem) 12/01 11:16
推 wix3000: 你的兩個物件都要加上 [Serilizable] 的屬性 12/01 12:24
→ wix3000: 類別 12/01 12:25
再查了一些資料,似乎是原版unity提供的轉Json無法識別自訂義的類別,
我把類別都拿掉,只單純存字串進去就可以了。
※ 編輯: kons (180.177.32.178 臺灣), 12/01/2020 20:43:44
推 kingroy: 同二樓 12/01 20:42
推 kingroy: 加在playitem的class前就ok 12/01 20:45
→ kingroy: 原本的忘了是不是Dictionary包list之類的會有問題 其他簡 12/01 20:46
→ kingroy: 單的自定義class應該沒問題 12/01 20:46
推 wix3000: 沒這回事,你加上我說的屬性就對了,記得 using System 12/01 21:31
https://i.imgur.com/YNYmoeJ.png 請問像這樣嗎?好像還是沒辦法存成Json,感謝提供建議,我再試試看。
※ 編輯: kons (180.177.32.178 臺灣), 12/01/2020 21:56:53
推 ctrlbreak: class要繼承 MonoBehaviour 或 ScriptableObject 12/02 00:32
推 cjcat2266: 把資料打包成純資料struct吧,MonoBehaviour和Sprite 12/02 00:36
→ cjcat2266: 應該有不少跟Serializable attribute不合的非純資料子 12/02 00:36
→ cjcat2266: 物件 12/02 00:36
感謝各位大大的提點,今天看了另一個教學,
雖然有些地方還不太懂,但可以成功儲存了,再次感謝大家。
https://i.imgur.com/fj5WsFd.jpg https://i.imgur.com/klX7sk0.jpg ※ 編輯: kons (180.177.32.178 臺灣), 12/02/2020 04:06:48
推 dreamnook: 12/03 20:46
推 kingroy: 阿 拿掉monobehaviour才對 單純的class拿來轉就ok 12/06 11:09
推 jackyT: 不能轉List要一般陣列 12/06 11:15
推 NDark: 我記得某一版之後List是可正常轉的.其他容器就不行. 12/06 11:22
推 kingroy: Dictionary比較煩,還有List Dictionary互包那種 12/08 10:16
→ linaomasa: 用newton啊 好用 12/09 17:16
推 kingroy: Newton兩年前某版會有問題,iOS審查卡那邊 12/09 18:33
推 NDark: newton 會卡 .net framework 版本. 當時要選用適當的版本. 12/09 19:31
→ NDark: 可以選用其他也支援這些容器的 json library 12/09 19:31
推 kingroy: 或是自己寫個helperclass 基本上Stackoverflow有一堆可參 12/10 11:49
→ kingroy: 考 12/10 11:49
→ gsyung: nsoft.Json-AOT 這個版本可處理ios過不了的問題 12/13 15:26