Unity 把数据写入到本地Json文件,并进行读取

结果如下所示:

下面上代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine;
using System;
using System.IO;
//要存储为json的对象
[Serializable]
public class DayRangeMessage
{
    public string date_time;//存储当天的日期
    public List<int> rangelist; //一天之内每次运行程序生成的随机数列表
}

public class TestJson : MonoBehaviour {
   
    string JsonPath; //json文件的路径
    DayRangeMessage dayrangeMessage;//要存起来的对象
    DayRangeMessage dayrangeMessagetemp;//要读取出来的对象
                                       
    void Start () {
        JsonPath = Application.streamingAssetsPath + "/JsonTest.json";
        InitJsonData();
    }
    //json 数据初始化
    void InitJsonData()
    {
        //生成一个DayRangeMessage对象
        dayrangeMessage = new DayRangeMessage();
        //给DayRangeMessage对象的第一个属性date_time赋值
        dayrangeMessage.date_time = "2019年8月14号";
        //给DayRangeMessage对象的第二个属性rangelist赋值
       //第二个个属性里添加有三个子元素
        dayrangeMessage.rangelist = new List<int>();
        dayrangeMessage.rangelist.Add(10);
        dayrangeMessage.rangelist.Add(22);
        dayrangeMessage.rangelist.Add(33);
    }
    //把上面初始化的数据进行保存
    public void SaveJson()
    {
        //如果本地没有对应的json 文件,重新创建
        if (!File.Exists(JsonPath))
        {
            File.Create(JsonPath);
        }
        string json = JsonUtility.ToJson(dayrangeMessage, true);
        File.WriteAllText(JsonPath, json);
        Debug.Log("保存成功");


    }
    //从本地读取json数据
    public void ReadJson()
    {
        if (!File.Exists(JsonPath))
        {
            Debug.LogError("读取的文件不存在!");
            return;
        }
        string json = File.ReadAllText(JsonPath);
        dayrangeMessagetemp = JsonUtility.FromJson<DayRangeMessage>(json);
        //读取第一个属性:日期
        string  date = dayrangeMessagetemp.date_time;
        Debug.LogError(date);     
        //获取第二个属性:
        for (int j = 0; j < dayrangeMessagetemp.rangelist.Count; j++)
        {
            Debug.Log(dayrangeMessagetemp.rangelist[j]);

        }


    }

}

 

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity提供了一个JsonUtility类来读取、存储和修改Json文件。以下是一个示例代码: ```csharp using UnityEngine; using System.IO; [System.Serializable] public class MyData { public string name; public int score; } public class JsonManager : MonoBehaviour { private string filePath; void Start() { filePath = Application.persistentDataPath + "/data.json"; } void SaveData() { MyData data = new MyData(); data.name = "Player"; data.score = 100; string jsonData = JsonUtility.ToJson(data); File.WriteAllText(filePath, jsonData); } void LoadData() { if (File.Exists(filePath)) { string jsonData = File.ReadAllText(filePath); MyData data = JsonUtility.FromJson<MyData>(jsonData); Debug.Log("Name: " + data.name); Debug.Log("Score: " + data.score); } else { Debug.Log("File not found: " + filePath); } } void ModifyData() { if (File.Exists(filePath)) { string jsonData = File.ReadAllText(filePath); MyData data = JsonUtility.FromJson<MyData>(jsonData); data.name = "NewName"; data.score = 200; jsonData = JsonUtility.ToJson(data); File.WriteAllText(filePath, jsonData); } else { Debug.Log("File not found: " + filePath); } } } ``` 在这个示例中,我们定义了一个MyData类来保存数据。我们使用JsonUtility.ToJson数据转换为Json格式,并将其写入文件中。我们使用JsonUtility.FromJsonJson数据转换回MyData对象,并打印其属性。 如果需要修改数据,我们可以读取Json数据,将其转换为MyData对象,修改其属性,将其转换回Json数据,并将其写入文件中。 请注意,我们在Start方法中使用Application.persistentDataPath来获取可写入的路径,这样我们就可以在设备上保存数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值