U3D 极其好用的Json插件NewtonJson

简单好用的Newtonsoft.Json

  • Newtonsoft.Json介绍
    • 一、下载
    • 二、导入项目
    • 三、使用
    • 四、后记

Newtonsoft.Json介绍

Netonsoft.Json 是一款 .NET 适用的 Json 插件,可以将 C# 中常用的数据类型序列化成 json 格式,使用时再反序列化对应的类型即可,包括 Dictionary、List 甚至 class 类都能很简单的进行序列化和反序列化,个人感觉十分好用,在此小做分享。

一、下载

  1. 进入官网( https://www.newtonsoft.com/json )点击 Download。
    U3D 极其好用的Json插件NewtonJson_第1张图片
  2. 直接点击 Json 跳转到 github( https://github.com/JamesNK/Newtonsoft.Json/releases ) 。
    U3D 极其好用的Json插件NewtonJson_第2张图片
  3. 跳转到 github 后可选择下载 dll(第一个zip) 或者源码。
    U3D 极其好用的Json插件NewtonJson_第3张图片

二、导入项目

在 u3d 工程中创建文件夹 Plugins ,将下载的 zip 中 Bin/netXX/Newtonsoft.Json.dll 以及 .xml 文件拖到 u3d 工程 Plugins 中,其中 xml 为注释,可拖可不拖,反正官网有文档和小例子。

  • 官方文档:https://www.newtonsoft.com/json/help/html/Introduction.htm
  • 小例子:https://www.newtonsoft.com/json/help/html/Samples.htm
    U3D 极其好用的Json插件NewtonJson_第4张图片

三、使用

  1. 使用前首先引用 using Newtonsoft.Json
  2. 简单举一个含有Dictionary 的 model 小例子
  using System.IO;
using UnityEngine;
using UnityEditor;
// 别忘了引入,或直接使用,用快捷键补齐
using Newtonsoft.Json;
using System.Collections.Generic;

public class TestJson
{
    [MenuItem("Tools/Model2Json", false, 923)]
    public static void Model2Json()
    {
        // 初始化一个测试数据
        VersionInfo versionInfo = new VersionInfo();

        versionInfo.versionId = "1.0.2";
        versionInfo.nameAndMd5.Add("human", "403fd551fa2515e262e34d373a6f9b6e");
        versionInfo.nameAndMd5.Add("animal", "af57576da81d5d3ce45807ac11234de6");
        versionInfo.nameAndMd5.Add("plant", "efd6aa8633c36b26e8b25e703db396ba");

        // 序列化
        string json = JsonConvert.SerializeObject(versionInfo);
        Debug.Log("JsonStr : " + json);
        // 反序列化
        VersionInfo deserializeVersionInfo = JsonConvert.DeserializeObject<VersionInfo>(json);
        Debug.Log("versionId : " + deserializeVersionInfo.versionId);
        Debug.Log("human's MD5 : " + deserializeVersionInfo.nameAndMd5["human"]);

        // 输出 json 文件
        string jsonPath = "Assets/product.json";

        // 写入文件
        File.WriteAllText(jsonPath, JsonConvert.SerializeObject(versionInfo));
        // 读文件
        string tmpFile = File.ReadAllText(jsonPath);
        // 此处可 反序列化为 model 供后续使用
        Debug.Log("JsonStr : " + tmpFile);
    }

    public  class VersionInfo
    {
        public string versionId;
        public Dictionary<string, string> nameAndMd5 = new Dictionary<string, string>();
    }
}

测试结果:
U3D 极其好用的Json插件NewtonJson_第5张图片

四、后记

因为没有对比太多别的 json 插件,自己用起来还是很顺手的,其他功能就自己看官方文档和例子测试使用吧~
(来自想要成为大佬的渣渣)

你可能感兴趣的:(U3D)