json解析丨网址、数据、其他信息

文章目录

  • json解析丨网址、数据、其他信息
  • 介绍
  • 一、文中使用了两种方法作为配置
  • 二、第一种
    • 准备
    • 2.代码块
  • 二、第二种
  • 总结

介绍

本文可直接解析本地json信息的功能示例,使用JSONObject和JsonUtility两种方法。


一、文中使用了两种方法作为配置

一种使用UnityWebRequest的方法(搭配JSON插件为JSONObject)
一种使用File文件读取方法(搭配Unity自带的JsonUtility)

二、第一种

UnityWebRequest方法

准备

JSONObject需要插件支持,不过可以在Assets Store中找到,直接搜索JSONObject就可以。

因为我开的Unity有点多,所以我选择添加到我的资源然后找到相应的Unity里在Package Manager里选择添加。只打开一个Unity可以直接选择加入到Unity里

需要在Unity里创建文件夹StreamingAssets然后把Json文件放到文件夹下(文件夹目录可以修改代码完成其他需求的文件夹目录使用)
Json格式也很简单{ "appid": "appid11111111" }
文本中只使用了一个数据作为示例。
然后把代码挂载后运行就可以直接出现了

2.代码块

using System.Collections;using System.Collections.Generic;using System.IO;using Defective.JSON;using UnityEngine;using UnityEngine.Networking;public class JsonParsingExample : MonoBehaviour{public string Config = "config.json";public string appid;// Start is called before the first frame updatevoid Start(){StartCoroutine(LoadConfig());}private IEnumerator LoadConfig(){var unityWebRequest = UnityWebRequest.Get(Path.Combine(Application.streamingAssetsPath, Config));yield return unityWebRequest.SendWebRequest();if (unityWebRequest.isHttpError || unityWebRequest.isNetworkError){unityWebRequest.Dispose();Debug.Log("No config, try default ...");yield break;}var data = unityWebRequest.downloadHandler" />;JSONObject _configJson = new JSONObject(data);unityWebRequest.Dispose();if (!string.IsNullOrWhiteSpace(_configJson["appid"].stringValue)) appid = _configJson["appid"].stringValue;}}

二、第二种

第二种不需要前期配置,是用的是Unity自带的JsonUtility

using System.Collections;using System.Collections.Generic;using System.IO;using Defective.JSON;using UnityEngine;using UnityEngine.Networking;[SerializeField]public class JsonUtilityUrl{public string appid;}public class JsonParsingExample : MonoBehaviour{public string Config = "config.json";public string appid;// Start is called before the first frame updatevoid Start(){string _path = Path.Combine(Application.streamingAssetsPath, Config);if (File.Exists(_path)){string jsonContent = System.IO.File.ReadAllText(_path);JsonUtilityUrl urldata = JsonUtility.FromJson<JsonUtilityUrl>(jsonContent);if (urldata.appid != string.Empty)appid = urldata.appid;Debug.Log("TokenUrl" + appid);}} }

总结

本文内容可直接使用,后期扩展。非常简单。