Unity自己的json序列化是不支持字典格式的。无意间发现了一个全新的json .net库,功能很强大,还支持序列化字典推荐给大家。
http://www.newtonsoft.com/json
点击下载,zip. 解压后,把bin/net20/Newtonsoft.Json.dll 拖入unity工程。
写下一段简单的序列化 反序列化json的代码
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。