HarmonyOS 鸿蒙Next API12 JSON解析问题求助

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next API12 JSON解析问题求助

后端返回的数据是JSON对象 怎么把返回的JSON对象转换成对应的目标对象 并获取里面的字段值 参照之前的一些帖子 拿到的 都是undefined

代码如图

cke_2019.png

13 回复
可以试一下三方库 eftool中的JSONObject.parseObject<T>(str)

冰冰大佬太敬业了,哭死…

哈哈哈哈 布道,鸿蒙需要大家共建

如果拿到的是对象,直接强转对象类型即可
let userInfo:UserInfo = JSON.parse(res.result) as UserInfo<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

public static fromJson<R>(json: string): R | null { if (TextUtil.isEmpty(json)) { return null } let bean: R | null = null try { bean = JSON.parse(json) as R } catch (e) { } return bean }

我这样做的调整,输出出来的bean,数据可以用,但方法不行,一调用方法,就报错

日志窗口提示了:预览器中 json.parse是个模仿实现,得到undefined是必然的;

如果一直坚持预览器,很多建议都不会成功,环境不对就换个环境!

interface User {

username:string

userId:string

sex:string

}

let user:User = res.result as User

console.log(user.username)

试过了 一样的undefined

试试用Object()

let user:object = Object(JSON.parse(res.result.toString())
console.log(`user:${JSON.stringify(user)`)
console.log(`username:${user['username']}`)<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

建议使用第三方class-transformer转换class

原因参考:https://developer.huawei.com/consumer/cn/blog/topic/03155225705890022

使用参考:https://developer.huawei.com/consumer/cn/blog/topic/03151854787432021

都不行 还是undefined 试了多种方法都不行 是不是版本问题导致的

HarmonyOS的分布式技术让我实现了跨设备的无缝协作,工作效率翻倍。

用真机或模拟器试试,预览器有时候不执行JSON.parse

在HarmonyOS(鸿蒙)系统中处理JSON解析问题时,确保你使用了正确的JSON解析库,如Gson或Fastjson等,这些库在Android及HarmonyOS环境下均能良好工作。检查你的JSON数据格式是否正确,以及你的解析代码是否与JSON结构相匹配。另外,确认你的HarmonyOS版本支持所使用的库和API。如果问题依旧,检查是否有权限或配置问题影响到JSON解析。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部