Unity自己的json序列化是不支持字典格式的。无意间发现了一个全新的json .net库,功能很强大,还支持序列化字典推荐给大家。
http://www.newtonsoft.com/json
点击下载,zip. 解压后,把bin/net20/Newtonsoft.Json.dll 拖入unity工程。
写下一段简单的序列化 反序列化json的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using Newtonsoft.Json; public class Test : MonoBehaviour { void Start() { Product product = new Product(); product.dic ["字典key"] = "字典Value"; product.name="我是雨松MOMO"; string json = JsonConvert.SerializeObject(product); Product m = JsonConvert.DeserializeObject<Product>(json); Debug.Log (json); Debug.Log (m.name); } public class Product { public string name; public Dictionary<string,string> dic=new Dictionary<string, string>(); } } |
用起来还是很方便的。支持复杂的嵌套,各种数据类型。大家可以去摸索。还有不用像unity那样每个序列话的对象还要写多一个[System.Serializable]标签。
这工具的缺点就是dll有点大。
欢迎大家一起测试~
- 本文固定链接: https://www.xuanyusong.com/archives/4367
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
导进去后出现了这个元数据编译错误:
error CS0009: Metadata file `G:\Unity Projects\TinyGame\Assets/Plugins/Newtonsoft.Json.dll’ does not contain valid metadata
Compilation failed: 1 error(s), 0 warnings
用的的Unity2017,请问大神知道该怎么解决吗?
emmmm,这个问题解决了,不是直接把dll文件拖进去,在GitHub上有对应的UnityPackage文件,导入就不会报错了。
请问那个Unity Package怎么找到?
问下, 你们IOS 打包这个能用吗?
我用这个IOS 打包用不了,其他平台没事!
minijson小,就一个cs文件。就是没这个方便
json.net又大又慢,优点就是用起来爽..
json.net大但是真不慢,数据.net框架里数一数二快的json序列化工具了
太大了,apk包大了0.9M。