Unity中使用SimpleJSON库修改并写入JSON文件的方法
Unity中使用SimpleJSON修改并写入JSON文件
核心步骤
- 修改JSON节点:解析得到
JSONNode实例后,直接通过键名赋值修改字段值 - 写入文件:将修改后的
JSONNode序列化为格式化字符串,再用File.WriteAllText写入目标路径
完整代码示例
using System.Collections; using System.Collections.Generic; using System.IO; using SimpleJSON; using UnityEngine; using UnityEngine.UI; public class ReadWriteScene : MonoBehaviour { public string jsonFile; JSONNode itemsData; string path; void Start () { // 注意:StreamingAssets在部分平台(如Android)是只读目录,若需持久化修改建议改用Application.persistentDataPath path = Path.Combine (Application.streamingAssetsPath, "Settings.json"); if (File.Exists (path)) { jsonFile = File.ReadAllText (path); DeserializePages (); // 执行修改并保存操作 ModifyAndSaveJSON(); } } void Update () { } public void DeserializePages () { itemsData = JSON.Parse (jsonFile); var parseJSON = JSON.Parse (jsonFile); Debug.Log(parseJSON["Phone"].Value); } void ModifyAndSaveJSON() { // 解析JSON(若已解析可直接复用itemsData,此处重新解析为示例清晰) JSONNode jsonNode = JSON.Parse(jsonFile); // 修改指定字段的值 jsonNode["Age"] = "false"; // 可同时修改其他字段,示例: // jsonNode["Location"] = "true"; // 将修改后的JSON序列化为带缩进的易读格式 string updatedJson = jsonNode.ToString(JSONTextMode.PrettyPrint); // 写入回目标文件 File.WriteAllText(path, updatedJson); Debug.Log("JSON修改并保存完成"); } }
关键说明
- 节点修改:SimpleJSON的
JSONNode支持直接通过索引器赋值,无需复杂序列化操作,语法简洁直观 - 序列化格式:
ToString(JSONTextMode.PrettyPrint)生成带缩进的格式化JSON,方便查看;若需紧凑格式,改用JSONTextMode.Compact - 路径适配:
Application.streamingAssetsPath在Android平台属于APK内的只读路径,无法写入。如果需要持久化保存修改,建议切换到Application.persistentDataPath,示例路径写法:path = Path.Combine(Application.persistentDataPath, "Settings.json"); // 首次运行时可从StreamingAssets复制初始文件到persistentDataPath目录
内容的提问来源于stack exchange,提问作者Vika
相关产品推荐
相关产品推荐

