如何在Unity中将指定结构的JSON数据转换为List<string>
Unity 解析JSON为List的实现方案
你需要解析的JSON根节点包含名为States的字符串数组,可通过以下两种常用方案实现转换:
方案1:使用Unity官方自带JsonUtility
- 步骤1:先定义匹配JSON结构的可序列化容器类
using System; [Serializable] public class StateRoot { // 字段名必须和JSON的键名完全一致 public List<string> States; }
- 步骤2:调用解析代码
using UnityEngine; // 填入你的原始JSON字符串 string rawJson = "{\"States\": [\"Kansas\",\"Oklahoma\"]}"; StateRoot rootData = JsonUtility.FromJson<StateRoot>(rawJson); // rootData.States就是你需要的List<string>类型结果 List<string> resultList = rootData.States;
方案2:使用Newtonsoft Json(Json.NET,Unity2020+默认支持)
该方案灵活度更高,也可以不用提前定义容器类:
using Newtonsoft.Json.Linq; string rawJson = "{\"States\": [\"Kansas\",\"Oklahoma\"]}"; JObject jsonObject = JObject.Parse(rawJson); List<string> resultList = jsonObject["States"].ToObject<List<string>>();
如果已经提前定义了上面的StateRoot类,也可以直接调用通用解析方法:List<string> resultList = JsonConvert.DeserializeObject<StateRoot>(rawJson).States;
内容的提问来源于stack exchange,提问作者Blink Dagger
相关产品推荐
相关产品推荐

