关于鸿蒙arkts解析json字符串问题

首先声明喔是小白,但是这个问题已经困扰我很久了,找了很多的资料,看了很多视频,都没能解决,一直卡在这里

同一段字符串,在typescript中运行是正常的,但是在arkts上面运行就是空,求解大神帮忙分析是什么问题

下面是本来的代码,就是简单的处理json字符串

  let str='{"code":1,"msg":"\u6570\u636e\u5217\u8868","page":1,"pagecount":3116,"limit":20,"total":62316,"list":[{"vod_id":"61295","vod_name":"\u4f9d\u5170\u7070\u70ec","type_id":"17","type_name":"\u6cf0\u56fd\u5267","vod_en":"yilanhuijin","vod_time":"2024-12-31 16:06:01","vod_remarks":"\u66f4\u65b0\u81f316\u96c6","vod_play_from":"1080zyk"}]}'
  let obj=JSON.parse(str) as object
  console.log(obj['msg'])
  • 1.
  • 2.
  • 3.

我在DevEco Studio上面的代码是这样子的

export function dataManager(){
  let str='{"code":1,"msg":"\u6570\u636e\u5217\u8868","page":1,"pagecount":3116,"limit":20,"total":62316,"list":[{"vod_id":"61295","vod_name":"\u4f9d\u5170\u7070\u70ec","type_id":"17","type_name":"\u6cf0\u56fd\u5267","vod_en":"yilanhuijin","vod_time":"2024-12-31 16:06:01","vod_remarks":"\u66f4\u65b0\u81f316\u96c6","vod_play_from":"1080zyk"}]}'
  let obj=JSON.parse(str) as object
  console.log(obj['msg'])
  return "333"
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

但是运行结果是

01-01 09:37:37.557   26672-21324   A0c0d0/JSAPP                                          W     The json.parse interface in the Previewer is a mocked implementation and may behave differently than on a real device.
01-01 09:37:37.557   26672-21324   A0c0d0/JSAPP                                          I     undefined
01-01 09:38:17.327   26672-21324   A0c0d0/JSAPP                                          W     The json.parse interface in the Previewer is a mocked implementation and may behave differently than on a real device.
01-01 09:38:17.327   26672-21324   A0c0d0/JSAPP                                          I     undefined
01-01 09:38:41.391   3428-28256    A0c0d0/JSAPP                                          W     The json.parse interface in the Previewer is a mocked implementation and may behave differently than on a real device.
01-01 09:38:41.391   3428-28256    A0c0d0/JSAPP                                          I     undefined
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

我试着去定义接口

import { JSON } from '@kit.ArkTS';

interface vodDataInterface{
  vod_id: string;
  vod_name: string;
  vod_remarks?: string;
  vod_play_from?: string;
  vod_play_url: string;
  vod_actors?: string;
  vod_director?: string;
  vod_area?: string;
  vod_year?: string;
  vod_class?: string;
  vod_duration?: string;
  vod_content?: string;
  vod_pic?: string;
  vod_score?: string;
  vod_play_note?: string;
  vod_type?: string;
  vod_status?: string;
}

interface httpDataInterface{
  code: number;
  msg: string;
  page: number;
  pagecount: number;
  limit: number;
  total: number;
  list: Array<vodDataInterface>
}

export function dataManager(){
  let str='{"code":1,"msg":"\u6570\u636e\u5217\u8868","page":1,"pagecount":3116,"limit":20,"total":62316,"list":[{"vod_id":"61295","vod_name":"\u4f9d\u5170\u7070\u70ec","type_id":"17","type_name":"\u6cf0\u56fd\u5267","vod_en":"yilanhuijin","vod_time":"2024-12-31 16:06:01","vod_remarks":"\u66f4\u65b0\u81f316\u96c6","vod_play_from":"1080zyk"}]}'
  let obj=JSON.parse(str) as httpDataInterface
  console.log(obj.msg)
  return "333"
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.

运行结果仍然是

01-01 09:54:00.245   17252-19888   A0c0d0/JSAPP                                          W     The json.parse interface in the Previewer is a mocked implementation and may behave differently than on a real device.
01-01 09:54:00.245   17252-19888   A0c0d0/JSAPP                                          I     undefined
  • 1.
  • 2.


但是在typescript中运行是正常的


关于鸿蒙arkts解析json字符串问题-鸿蒙开发者社区


到底是为什么呀,话说arkts不是typescript的超集吗?求大神帮忙分析一下

arkts
harmonyOS NEXT
json
2025-01-01 10:01:15
1234浏览
收藏 0
回答 2
回答 2
按赞同
/
按时间
wx5b1221fc407ea

没人回答,我自己回答了,经过我不断的摸索,发现只要删除引用的JSON就能解析了,你说神不神奇,也就是把这句话删掉

import { JSON } from '@kit.ArkTS';
  • 1.

溯源发现JSON指向有三个函数,默认应该是第一个json函数,所以我觉得应该是arkts没做好规范,导致有多个同名函数冲突。不过删除掉引用之后有个默认值,默认的那个可以正常解析,那么我想问其他的两个是干什么用的?




分享
微博
QQ
微信
回复1
2025-01-04 19:44:14
wx67b6fe01accfd

为什么我的没有引入也还是不行呢,转化不了对象,取不到里面的list

分享
微博
QQ
微信
回复
2025-02-20 18:05:47


相关问题
嵌套JSON字符串解析问题
2481浏览 • 1回复 待解决
HarmonyOS 超长JSON字符串解析
782浏览 • 2回复 待解决
如何解析JSON字符串
1728浏览 • 1回复 待解决
HarmonyOS 服务端JSON字符串解析问题
927浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串
1285浏览 • 1回复 待解决
关于加密字符串相关问题
731浏览 • 1回复 待解决
如何打印JSON对象和JSON字符串
850浏览 • 1回复 待解决
HarmonyOS 关于json解析问题
404浏览 • 1回复 待解决
如何实现Map转JSON字符串
1630浏览 • 1回复 待解决
HarmonyOS url里的字符串怎么解析
311浏览 • 1回复 待解决
HarmonyOS字符串替换问题
1346浏览 • 1回复 待解决
如何将对象转为JSON字符串
993浏览 • 1回复 待解决
HarmonyOS 字符串编码问题
442浏览 • 1回复 待解决
HarmonyOS 替换字符串问题
690浏览 • 1回复 待解决
HarmonyOS 读取本地json文件转成字符串
519浏览 • 1回复 待解决