HarmonyOS 鸿蒙Next 网络请求返回来的是JSON格式的数据,不知道如何使用这些数据,输出来都是 undefined
HarmonyOS 鸿蒙Next 网络请求返回来的是JSON格式的数据,不知道如何使用这些数据,输出来都是 undefined ETS开发
我向服务器发送请求,服务器返回的是json格式的数据,例如:
console.info(JSON.stringify(data.result))
输出的数据为: app Log: "{\"inf\":\"ok\",\"y\":true}"
服务器后台设置的返回数据为json 格式 我不清楚data.result 来的数据是什么格式,我尝试使用 data.result.inf
取出数据 但是在IDE中就报错
报错内容:Property ‘inf’ does not exist on type ‘string | Object | ArrayBuffer’. Property ‘inf’ does not exist on type ‘string’. <tsCheck>
因为将data.result 转为字符串能正常输出,所以我尝试把字符串给转成对象
JSON.parse(JSON.stringify(data.result))
输出的结果是:
app Log: {"inf":"ok","y":true}
那么我再输出里面的内容但是直接提示 undefined
如下:
let dataString = JSON.stringify(data.result);
let dataJson = JSON.parse(dataString)
console.info(dataJson)
console.info(dataJson.inf)
app Log: {"inf":"ok","y":true}
app Log: undefined
还有个问题就是
extraData: {
"tel": this.tel,
"pass": this.passWord
}
数据提交上去是空的,什么都没有,确定this.tel 和 this.passWord
是有值的
不知道这是哪里的问题,我是0基础来学习这个鸿蒙开发的,之前有小程序的开发经验。希望大神解答一下我的疑惑,测试方式为真机mate 40E 后台使用apache php
更多关于HarmonyOS 鸿蒙Next 网络请求返回来的是JSON格式的数据,不知道如何使用这些数据,输出来都是 undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html
定义一个数据类匹配返回的JSON数据
class DataSet{
inf:string
y:boolean
}
dataresult:DataSet
this.dataresult=JSON.parse(data.result.toString())
console.info(this.dataresult.inf)
更多关于HarmonyOS 鸿蒙Next 网络请求返回来的是JSON格式的数据,不知道如何使用这些数据,输出来都是 undefined的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
谢谢您的方法可用,我之前遇到的问题 后来我才发现是因为构建的设备混乱造成 日志输出的不是测试设备,重新签名后构建就好了,另外 那个参数没传上去不知道什么原因
httpRequest.on('headersReceive', (header) => {
console.info('header: ' + JSON.stringify(header));
});
这个信息 在某一次的时候 输出过 后来 就 没有了, 直接输出 header:null
,
能说说如何重新签名的吗
我也遇到了楼主类似问题,
在HarmonyOS(鸿蒙)开发中,如果你从网络请求接收到JSON格式的数据,但输出显示为undefined,这通常意味着你没有正确地解析JSON数据。以下是如何在鸿蒙系统中处理JSON数据的步骤:
-
确保数据接收正确:首先,验证你确实从网络请求中收到了JSON格式的响应。可以通过打印原始响应字符串来检查。
-
解析JSON数据:鸿蒙系统提供了JSON解析的API。你可以使用
JsonUtil
类来解析JSON字符串。例如:std::string jsonString = "..."; // 你的JSON字符串 JsonValue jsonValue = JsonUtil::ParseJsonString(jsonString); // 访问JSON对象中的数据 if (jsonValue.IsObject()) { JsonObject jsonObject = jsonValue.GetObject(); std::string someData = jsonObject.GetString("someKey"); // 使用someData }
-
检查键名是否正确:确保你访问的键名与JSON字符串中的键名完全匹配。
-
数据类型匹配:确保你访问数据时使用的方法与JSON中数据的实际类型相匹配(如GetString、GetInt等)。
如果遵循上述步骤后问题依旧存在,可能是JSON字符串格式错误或解析过程中有其他问题。此时,请检查JSON字符串的有效性,并确认解析代码无误。
如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html,