Unity读取Json的几种方法

这篇具有很好参考价值的文章主要介绍了Unity读取Json的几种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

存入和读取JSON工具      

目录

存入和读取JSON工具

读取本地Json文件


1、unity自带方法

类名:JsonUtility         

序列化:ToJson()                   

反序列化:FromJson<>()        

用于接收的JSON实体类需要声明[Serializable] 序列化

实体类中的成员变量要是字段而不是属性{get;set;}

处理数组的话,外面再包裹一层对象

2、Newtonsoft插件

类名:JsonConvert     

序列化:SerializeObject()       

反序列化:DeserializeObject<>()

3、LitJson插件

类名:JsonMapper       

序列化:ToJson()                   

反序列化:ToObject<>()

实体类可以不用声明[Serializable]

实体类中的成员变量可以是字段也可以是属性{get;set;}

可以直接处理数组

读取本地Json文件

(1)json文件放在Resources文件夹中
     1、使用Resources.Load<TextAsset>方法读取
     string jsonFilePath = "JsonFileName";    // 不带扩展名
     TextAsset jsonTextAsset = Resources.Load<TextAsset>(jsonFilePath);
     string jsonFileContent = jsonTextAsset.text;

(2)json文件放到StreamingAssets文件夹

     1、使用Application.streamingAssetsPath获取路径:
     string jsonFilePath = Path.Combine(Application.streamingAssetsPath,                                                                                                                           "example.json");
     2、使用Application.dataPath获取路径
     string jsonFilePath =               Path.Combine(Application.dataPath,"StreamingAssets/example.json.bytes");
        using (StreamReader reader = new StreamReader(jsonFilePath))
         { 
                  string jsonContent = reader.ReadToEnd();
                  // 在这里可以使用jsonContent进行进一步的处理‘
                  Debug.Log("JSON内容:" +    jsonContent); 
          }

 (3)json文件放到Assets下

      1、使用Application.dataPath获取路径
     string json = File.ReadAllText(Application.dataPath+"/taskInfo.json");
     Root  root = JsonUtility.FromJson<Root>(json); 

举例

{

    "msg": "成功!",

    "code": 1,

    "data": {

        "teacher": "cao",

        "age": "52",

        "subject": "math",

        "students":[ 
                {
                    "name": "wang",

                    "age": "20",

                    "grade": "79",

                    "number": "6" },
                {
                    "name": "zhang",

                    "age": "22",

                    "grade": "91",

                    "number": "5" }
                  ]            
          }        
}

需要写好实体类来接受


    public class Root
    {
        public string msg;
        public int code;
        public DataM data;
    }

    public class DataM 
    {
        public string teacher;
        public int age;
        public int subject;
        public List<Student> students;
    }

    public class Student
    {
        public string name;
        public int age;
        public int grade;
        public int number;
    }

现在读取Resources文件夹下的json文件,这里我是用的是LitJson插件文章来源地址https://www.toymoban.com/news/detail-812377.html

//获取json数据(此处读取本地上的json文件)
TextAsset jsonTextAsset = Resources.Load<TextAsset>(jsonFilePath);
string jsonInfo = jsonTextAsset.text;

//json转类
Root root = JsonMapper.ToObject<Root>(jsonInfo);

//遍历获得数据
 foreach (var DataM in root.data)
{

    Debug.Log(DataM.techer);             //————> cao
    Debug.Log(DataM.age);                //————> 52
    Debug.Log(DataM.students[0].name);   //————> wang
    Debug.Log(DataM.students[1].grade);  //————> 91

}

到了这里,关于Unity读取Json的几种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【图文详解】Unity存储游戏数据的几种方法

    在Unity中,常用的数据存储方法包括PlayerPrefs、ScriptableObject、JSON、XML和数据库等。 PlayerPrefs是Unity自带的一种简单的键值存储系统,适合存储一些简单的游戏数据。ScriptableObject是一种Unity类,可用于创建可序列化的对象并存储数据。JSON和XML是轻量级的数据交换格式,可以通过

    2023年04月08日
    浏览(49)
  • unity碰撞检测识别对象的几种方法,刚体篇

    可以在物体的Collider组件中设置碰撞层级,只有属于指定层级的物体才会响应碰撞事件。例如,我们可以将敌人设置为一个单独的层级,然后在玩家的脚本中检测碰撞时,只响应属于敌人层级的物体。 可以在物体的Collider组件中设置标签,然后在脚本中检测碰撞时,只响应标

    2024年02月11日
    浏览(37)
  • Unity——写入和读取Json信息的方法

    首先在Unity的Assets目录下新建一个Plugins文件夹,引入LitJson.dll类库!!! 编写读写脚本时,还需要再导入命名空间 using LitJson 关于Litjson文件: 可以去官网下载一个文件包;.dll文件存在于  litjson-0.5.0/bin目录。   Litjson官网下载链接 :LitJSON download | SourceForge.net 具体操作:  先

    2023年04月08日
    浏览(45)
  • Unity Android 之 读取下载获取移动端 sdcard 路径下的指定文件夹的所有图片的几种方式的简单整理

    目录 Unity Android 之 读取下载获取移动端 sdcard 路径下的指定文件夹的所有图片的几种方式的简单整理 一、简单介绍 二、实现原理 三、注意事项 四、简单实现步骤 五、关键代码 附录: 一、不同平台使用宏区分路径加载 二、Unity3D中的资源路径 三、Unity3D各平台路径(包括手

    2024年01月19日
    浏览(79)
  • 【笔记】Unity2D角色和物体移动的几种方法

    在Unity中对于物体移动有多种方法,这里根据b站up主【鼓励Jun】的视频整理了一些笔记 变量声明: 位移向量var dir=new Vector3(deltax.deltay,deltaz); 移动速度var speed=2; ps:变量声明都在主要都在方法外,实际位移操作则在Update方法中。 #键盘输入,这里举一个只x轴上移动的例子,y轴同

    2023年04月08日
    浏览(55)
  • 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(60)
  • 【100个 Unity实用技能】☀️ | C# 检查字典中是否存在某个Key的几种方法

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(46)
  • go读取文件的几种方法

    直接将数据直接读取入内存,是效率最高的一种方式,但此种方式,仅适用于小文件,对于大文件,则不适合,因为比较浪费内存 1.直接指定文化名读取 在 Go 1.16 开始,ioutil.ReadFile 就等价于 os.ReadFile,二者是完全一致的 1.1使用os.ReadFile函数读取文件 1.2使用ioutil.ReadFile函数读

    2024年02月10日
    浏览(42)
  • Python读取CSV文件的几种方法

    话不多说,开干!!! 目录 1. 使用 csv 模块 2.使用 numpy 库 3.使用pandas库 4.使用标准库中的 csv 模块 5.注意事项 (1)项目目录如下图所示: (2)代码如下: (3)效果如下: (1)项目结构如下: (2)代码如下: (3)效果如下: (1)项目结构如下: (2)代码如下: (

    2024年02月08日
    浏览(57)
  • unity碰撞检测的几种函数

    OnCollisionEnter(Collision collision):这个函数用于检测两个物体之间的碰撞事件,当两个物体发生碰撞时被调用。其中,参数collision包含了碰撞的详细信息,例如碰撞点、碰撞法线等等。 OnCollisionStay(Collision collision):这个函数用于检测两个物体之间的持续碰撞事件,当两个物体持

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包