欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。 介绍 JSON是一个简单的,但功能强大的序列化数据式。它定义了简单的类型,如布尔,数(int和float)和字符串,和几个数据结构:list和dictionnary。可以在 litjson是用C #编写的,它的目的是要小,快速,易用。它使用了Mono框架。 安装LitJSON 将LitJSON编译好的dll文件通过Import New Asset的方式导入到项目中,再使用Using LitJSON即可使用JSONMapper类中的简便方法。dll的下载地址在这里. 将JSON转化为Object并可逆向转化 为了在.Net程序中使用JSON式的数据。一个自然的方法是使用JSON文本生成一个特定的类的一个新实例;为了匹配类的式,一般存储的JSON字符串是一个字典。 另一方面,为了将对象序列化为JSON字符串,一个简单的导出操作,听起来是个好主意。 为了这个目的,LitJSON包引入了JsonMapper类,它提供了两个用于做到 JSON转化为object 和 object转化为JSON 的主要方法。这两个方法是jsonmapper.toobject和jsonmapper.tojson。 将object转化为字符串之后,我们就可以将这个字符串很方便地在文件中读取和写入了。 一个简单的JsonMapper的例子 在下面的例子中,ToObject方法有一个泛型参数,来指定返回的某种特定的数据类型:即JsonMapper.ToObjectT。 using LitJson; using System; public class Person { // C# 3.0 auto-implemented properties public string Name { get; set; } public int Age { get; set; } public DateTime Birthday { get; set; } } public class JsonSample { public static void Main() { PersonToJson(); JsonToPerson(); } public static void PersonToJson() { Person bill = new Person(); bill.Name = "William Shakespeare"; bill.Age = ; bill.Birthday = new DateTime(, 4, ); string json_bill = JsonMapper.ToJson(bill); Console.WriteLine(json_bill); } public static void JsonToPerson() { string json = @" { ""Name"" : ""Thomas More"", ""Age"" : , ""Birthday"" : ""// ::"" }"; Person thomas = JsonMapper.ToObjectPerson(json); Console.WriteLine("Thomas' age: {0}", thomas.Age); } } 上文的输出: {"Name":"William Shakespeare","Age":,"Birthday":"// ::"} Thomas' age: 使用非泛型的JsonMapper.ToObject 当不存在特定的JSON数据类时,它将返回一个JSONData实例。JSONData是一种通用型可以保存任何数据类型支持JSON,包括list和dictionary。 using LitJson; using System; public class JsonSample { public static void Main() { string json = @" { ""album"" : { ""name"" : ""The Dark Side of the Moon"", ""artist"" : ""Pink Floyd"", ""year"" : , ""tracks"" : [ ""Speak To Me"", ""Breathe"", ""On The Run"" ] } } "; LoadAlbumData(json); } public static void LoadAlbumData(string json_text) { Console.WriteLine("Reading data from the following JSON string: {0}", json_text); JsonData data = JsonMapper.ToObject(json_text); // Dictionaries are accessed like a hash-table Console.WriteLine("Album's name: {0}", data["album"]["name"]); // Scalar elements stored in a JsonData instance can be cast to // their natural types string artist = (string) data["album"]["artist"]; int year = (int) data["album"]["year"]; Console.WriteLine("Recorded by {0} in {1}", artist, year); // Arrays are accessed like regular lists as well Console.WriteLine("First track: {0}", data["album"]["tracks"][0]); } } 上面例子的输出: Reading data from the following JSON string: { "album" : { "name" : "The Dark Side of the Moon", "artist" : "Pink Floyd", "year" : , "tracks" : [ "Speak To Me", "Breathe", "On The Run" ] } } Album's name: The Dark Side of the Moon Recorded by Pink Floyd in First track: Speak To Me Reader和Writer 一些人喜欢使用stream的方式处理JSON数据,对于他们, 我们提供的接口是jsonreader和jsonwriter。 JSONMapper实际上是建立在以上两个类的基础上的,所以你可以把这两个类当成是litJSON的底层接口。 使用JsonReader using LitJson; using System; public class DataReader { public static void Main() { string sample = @"{ ""name"" : ""Bill"", ""age"" : , ""awake"" : true, ""n"" : ., ""note"" : [ ""life"", ""is"", ""but"", ""a"", ""dream"" ] }"; PrintJson(sample); } public static void PrintJson(string json) { JsonReader reader = new JsonReader(json); Console.WriteLine ("{0,} {1,} {2,}", "Token", "Value", "Type"); Console.WriteLine (new String ('-', )); // The Read() method returns false when there's nothing else to read while (reader.Read()) { string type = reader.Value != null ? reader.Value.GetType().ToString() : ""; Console.WriteLine("{0,} {1,} {2,}", reader.Token, reader.Value, type); } } } 输出如下: Token Value Type ------------------------------------------ ObjectStart PropertyName name System.String String Bill System.String PropertyName age System.String Int System.Int PropertyName awake System.String Boolean True System.Boolean PropertyName n System.String Double . System.Double PropertyName note System.String ArrayStart String life System.String String is System.String String but System.String String a System.String String dream System.String ArrayEnd ObjectEnd更多内容,请访问【狗刨学习网】unity极致学院 声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。
推荐整理分享【Unity3D插件】在Unity中读写文件数据:LitJSON快速教程(unity 3d插件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity插件推荐,unity3d插件下载,unity3d插件下载手机版,unity 插件,unity 插件,unity 3d插件,unity3d插件下载手机版,unityui插件,内容如对您有帮助,希望把文章链接给更多的朋友!
通过制作Flappy Bird了解Native 2D中的Sprite,Animation 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学
通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学
Unity创建项目及基本面板介绍 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学