使用 SimpleJSON 从 Web API 解析 Unity 中的 JSON 数据数组
Posted
技术标签:
【中文标题】使用 SimpleJSON 从 Web API 解析 Unity 中的 JSON 数据数组【英文标题】:Parsing JSON data array in Unity from a web API using SimpleJSON 【发布时间】:2021-12-17 11:17:39 【问题描述】:您好,感谢您花时间查看我的问题。 我正在使用 SimpleJSON 解析来自https://api.thingspeak.com/channels/1327025/fields/1.json?results=1 的数据流 特别是试图到达“feeds”中的“field1”。
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.Networking;
using SimpleJSON;
using TMPro;
public class onLoad : MonoBehaviour
public TMP_Text temperatureData;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.Networking;
using SimpleJSON;
using TMPro;
public class onLoad : MonoBehaviour
public TMP_Text temperatureData;
public void GetJsonData()
StartCoroutine(RequestWebService());
Debug.Log("test");
IEnumerator RequestWebService()
string jsonString = "https://api.thingspeak.com/channels/1327025/fields/1.json?results=1";
Debug.Log(jsonString);
using (UnityWebRequest webData = UnityWebRequest.Get(jsonString))
yield return webData.SendWebRequest();
if (webData.isNetworkError || webData.isHttpError)
print("---------------- ERROR ----------------");
print(webData.error);
else
if (webData.isDone)
JSONNode jsonData = JSON.Parse(System.Text.Encoding.UTF8.GetString(webData.downloadHandler.data));
if (jsonData == null)
print("---------------- NO DATA ----------------");
else
print("---------------- JSON DATA ----------------");
print("jsonData.Count:" + jsonData.Count);
temperatureData.text = jsonData["feeds\field1"];
Debug.Log(temperatureData.text);
我的代码似乎工作正常,因为我让“jsonData.Count”工作(出现为 2)。我假设它正在阅读“频道”和“提要”。但它弹出为空。
如何将键和项放在 jsonData 中以到达 field1 ? 谢谢
【问题讨论】:
jsonData [ "feeds" ] [ 0 ] [ "field1" ]
不会给出想要的输出吗?
【参考方案1】:
简单的 JSON 基本上就像一个带有单个关键字的 字典...你不能只传递一个 path 给它。
你想要的是
首先访问feeds
它是一个数组,所以获取一个元素 .. 可能是第一个?
该元素最终访问field1
类似
temperatureData.text = jsonData["feeds"][0]["field1"].Value;
【讨论】:
以上是关于使用 SimpleJSON 从 Web API 解析 Unity 中的 JSON 数据数组的主要内容,如果未能解决你的问题,请参考以下文章
无法导入名称 simplejson - 安装 simplejson 后