LiveCode调用API返回JSON解析失败无法获取email字段问题求助
问题排查及修复方案
1. 核心错误:JSON层级读取错误
你拿到的API返回JSON为嵌套结构,直接从根数组读取email字段肯定无法取到值,正确的取值路径为:
根对象 → data数组 → 数组第1个元素 → email字段
对应LiveCode的取值写法需要修改为 tDataArray["data"][1]["email"]
2. 补充校验逻辑的完整可运行代码
你当前没有加请求状态、JSON解析的校验逻辑,出问题无法定位根因,建议使用补全调试逻辑的代码:
put "<api url endpoint>" into tUrl put "Authorization: Bearer xxxxxxxxx" into tHeaders put tsNetGetSync(tUrl, tHeaders, tRecvHeaders, tResult, tBytes) into tData -- 校验API请求是否成功 if tResult is not 200 then put "API请求失败,错误码:" & tResult & ",返回内容:" & tData into field "flddata" exit to top end if -- 校验JSON解析是否正常 put JSONToArray(tData) into tDataArray if the result is not empty then put "JSON解析失败,错误:" & the result & ",返回内容:" & tData into field "flddata" exit to top end if -- 按正确层级读取email字段 put tDataArray["data"][1]["email"] into field "flddata"
3. 其他可能的问题排查点
- 你同时引入了JSON Library和mergJSON两个JSON处理组件,可能存在
JSONToArray方法实现冲突,可以替换为mergJSON的解析方法mergJSONDecode(tData)测试 - tsNet要求多请求头用换行分隔,如果你后续需要新增其他请求头,注意用
& crlf &拼接 - 确认你的API端点地址、Bearer Token没有拼写错误,接口没有跨域、权限拦截问题
内容的提问来源于stack exchange,提问作者Dexxterr
相关产品推荐
相关产品推荐

