IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity——写入和读取Json信息的方法 -> 正文阅读

[游戏开发]Unity——写入和读取Json信息的方法

?先定义一个类,假如现在是要查看手机里APP的信息,把信息先放进去(这里分为简单和复杂读取时的情况,测试的时候要先把另一个注释掉!)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class APPofMine
{
    public int appNum;

    public bool phoneState;

    //简单写入和读取的时候直接用List来保存数据
    //public List<string> appList;


    //复杂写入和读取的时候定义一个List存放另一个类里的数据
    public List<AppProperty> appPropertiesList;
}

另一个类里的数据:?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AppProperty
{
    public string appName;
    public string ErenID;
    public bool ErenFavour;
    public List<int> useTimeList;
}

写入和读取的方法及调用测试代码:

代码比较长,有详细的注释!可以直接全段复制~

PS:测试时要先在Unity创建一个物体,然后把此脚本挂在物体下,另外还需要在Assets目录下创建一个 Resources 文件夹!!!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
using System.IO;


public class JosnTest : MonoBehaviour
{
    private APPofMine appOfMine;

    // Start is called before the first frame update
    void Start()
    {
        #region 简单Json信息的存储和读取

        //简单Json信息的存储和读取
        /*
        写入
        //appOfMine = new APPofMine
        //{
        //    appNum = 3,
        //    phoneState = true,
        //    appList = new List<string>()
        //    {
        //        "抖音","BiliBili","绝地求生"
        //    }
        //};

        //SaveByJson();

        //读取
        appOfMine = new APPofMine();

        appOfMine = LoadByJson();

        print(appOfMine.appNum);
        print(appOfMine.phoneState);
        foreach (var item in appOfMine.appList)
        {
            print(item);
        }
        */
        #endregion


        #region 复杂Json信息写入和读取
        写入
        //appOfMine = new APPofMine
        //{
        //    appNum = 3,
        //    phoneState = true,
        //    appPropertiesList = new List<AppProperty>()
        //};

        //AppProperty appProperty = new AppProperty
        //{
        //    appName = "抖音",
        //    ErenID = "冬瓜大浪",
        //    ErenFavour = true,
        //    useTimeList = new List<int> { 6, 7, 8 }
        //};
        //appOfMine.appPropertiesList.Add(appProperty);
        //SaveByJson();

        //读取
        appOfMine = LoadByJson();
        print(appOfMine.appNum);
        print(appOfMine.phoneState);
        foreach (var item in appOfMine.appPropertiesList)
        {
            print(item);
            print(item.appName);
            print(item.ErenFavour);
            print(item.ErenID);
            foreach (var itemGo in item.useTimeList)
            {
                print(itemGo);
            }
        }
        #endregion
    }


    #region 简单存储Json信息文件的方法
    //存储Json信息文件
    private void SaveByJson()
    {
        //找到文件要存储的路径
        string filePath = Application.dataPath/*Assets根目录*/ + "/Resources"/*后续路径*/ + "/APPofMine.json"/*文件名*/;

        //利用JsonMapper将 信息类对象(字段名) 转化成 json格式 的 字符串
        string saveJsonStr = JsonMapper.ToJson(appOfMine);

        //创建一个文件流将字符串写入一个文件中
        StreamWriter sw = new StreamWriter(filePath);

        //开始写入
        sw.Write(saveJsonStr);

        //关闭文件流
        sw.Close();
    }
    #endregion


    #region 简单读取Json的信息文件
    //读取Json的信息文件
    private APPofMine LoadByJson()
    {
        APPofMine appGo = new APPofMine();

        //找到需要读取文件的路径
        string filePath = Application.dataPath/*Assets根目录*/ + "/Resources"/*后续路径*/ + "/APPofMine.json"/*文件名*/;

        //先判断如果文件夹存在
        if (File.Exists(filePath))
        {
            //创建一个新的变量 sr ,用来存储读取到的数据,开始读取
            StreamReader sr = new StreamReader(filePath);

            //把读取到的信息转换成字符串的形式存储下来
            string loadJsonStr = sr.ReadToEnd();

            //关闭文件流
            sr.Close();

            //存储读取到的数据
            appGo = JsonMapper.ToObject<APPofMine>(loadJsonStr);
        }

        //判空
        if (appGo == null)
        {
            Debug.Log("读取Json文件失败");
        }

        return appGo;
    }
    #endregion






}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:15:39  更:2022-01-24 11:18:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:48:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码