06.Unity中使用LitJson进行Json数据处理

B站影视 韩国电影 2025-09-17 10:42 1

摘要:LitJson是一个轻量级的JSON库,专为C#设计,支持JSON数据的序列化和反序列化,适用于.NET平台。该库主要目的是为开发者提供一个简洁、高效且易于使用的JSON处理工具。

LitJson是一个轻量级的JSON库,专为C#设计,支持JSON数据的序列化和反序列化,适用于.NET平台。该库主要目的是为开发者提供一个简洁、高效且易于使用的JSON处理工具。

一个.Net库,用于处理JSON(JavaScript对象表示法)字符串之间的转换。LitJSON是用C#编写的,它旨在体积小、速度快、易于使用。它快速而精简,没有外部依赖。只有几个类,可以很容易地嵌入到你自己的代码中,或者是一个非常小的程序集,可以与你的代码一起发布。该代码具有高度的可移植性,这通常使其易于适应新平台。

先将 NuGet 包导入,Unity NuGet 包(NuGetForUnity)地址:

GitHub - GlitchEnzo/NuGetForUnity: A NuGet Package Manager for Unity

下载地址:

下载后导入到项目中,导入完成后,在 Unity 的菜单中出现 NuGet 菜单。

选择 NuGet 菜单中的 Manage NuGet Packages,搜索 LitJson 后安装即可。

using System;public static class Program{public static void Main{ // Serialize object to JSONvar toObject = new HelloWorld{ Message = "Hello world!" };var toJson = LitJson.JsonMapper.ToJson(toObject);Console.WriteLine("To JSON: {0}", toJson);// Serialize JSON to objectvar fromJson = "{\"Message\":\"Hello world!\"}";var fromObject = LitJson.JsonMapper.ToObject(fromJson); Console.WriteLine("From json: {0}", fromObject.Message);}public class HelloWorld{public string Message { get; set; }}}

结果:

To JSON: {"Message":"Hello world!"}From json: Hello world!

数据类:

public class Prop {public int id { get; set; }public string name { get; set; }public int number { get; set; }}

将数据写入json文件:

void WriteJSONFile{List props = new List;Prop p1 = new Prop { id = 1, name = "长矛", number = 1 };props.Add(p1);Prop p2 = new Prop { id = 2, name = "冲锋枪", number = 2 };props.Add(p2);Prop p3 = new Prop { id = 3, name = "狙击枪", number = 1 };props.Add(p3);Prop p4 = new Prop { id = 4, name = "手枪", number = 2 };props.Add(p4);Prop p5 = new Prop { id = 5, name = "大刀", number = 1 };props.Add(p5);Debug.Log(JsonMapper.ToJson(props));string fileName = Path.Combine(Application.streamingAssetsPath, "props.json");File.WriteAllText(fileName, JsonMapper.ToJson(props));}

读取json数据文件:

public Text txt; // 界面中的 Text 组件IEnumerator Start{string url = Path.Combine(Application.streamingAssetsPath, "props.json");UnityWebrequest uwr = UnityWebRequest.Get(url);yield return uwr.SendWebRequest;if (uwr.result != UnityWebRequest.Result.Success){Debug.LogError("Error in request: " + uwr.error);}else{string fileName = Path.Combine(Application.temporaryCachePath, "props.json");File.WriteAllBytes(fileName, uwr.downloadHandler.data);string text = File.ReadAllText(fileName);List props = JsonMapper.ToObject>(text);string str = "";foreach (Prop p in props){str += "ID:" + p.id + ", Name:" + p.name + ", Number:" + p.number + "\r\n";}txt.text = str;}}

来源:IT职业教育

相关推荐