Unity中使用SimpleJSON解析ThingSpeak Web API JSON数组获取field1值问题
你当前的写法存在两处核心问题,导致无法正确读取到field1的值:
- 你使用的
jsonData["feeds\field1"]是错误的访问方式:feeds和field1是不同层级的JSON节点,不能直接拼接字符串作为键名访问,且你写的反斜杠\在C#字符串中属于转义符,实际生成的键名和预期完全不符。 - 接口返回的
feeds节点是数组类型,哪怕你请求参数指定了results=1只返回1条数据,也需要先取数组的第0个元素,再访问该元素下的field1字段。
修复方案
将你代码中给temperatureData赋值的语句:
temperatureData.text = jsonData["feeds\field1"];
替换为以下代码即可:
// 优先判断feeds数组是否有数据,避免索引越界 if (jsonData["feeds"].Count > 0) { temperatureData.text = jsonData["feeds"][0]["field1"].Value; Debug.Log(temperatureData.text); } else { temperatureData.text = "无有效数据"; }
末尾加.Value是SimpleJSON中明确取节点字符串值的规范写法,可避免隐式转换出现异常。
内容的提问来源于stack exchange,提问作者Pravin Charles Vaz
相关产品推荐
相关产品推荐

