HarmonyOS Json字符串包含数字key,应该如何编写数据类,类型是什么?

以下是接口返回的一段json字符串,在max_rank_tags内部,可能包含1个或多个数字key和数据结构ShopInfo组成的数据,请问这种情况max_rank_tags的数据类应该如何编写,对应的类型是什么?数据类格式是ets,尝试过[k:string]:ShopInfo,但报错,猜测是ets文件对类型要求比较严格。另外还尝试过用HashMap<number,ShopInfo>,但在代码里get()出来时,报错:TypeError: is not callable。

{
  "status_code": 200,
  "result": {
    "max_rank_tags": {
      "215123565": {
        "shop_id": 215123565,
        "rank_name": "热门商家榜-月度",
        "rank_no": 1,
        "rank_item_name": "月度签单量",
        "rank_item_score": "1",
        "rank_over_percent": 0,
        "station_name": "上海",
        "rank_id": 10,
        "in_rank_num": 1
      }
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
HarmonyOS
2024-12-23 15:29:26
984浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

参考以下demo,不固定的key用string获取再给他转换:

export class ResponseResult {
  statues_code: number = 0
  result: Reusult = new Reusult()
}

export class Reusult {
  max_rank_tags: string = ''
}

export class ShopInfo {
  shop_id: number = 0
}

@Component
@Entry
struct Index {
  @State str: string =
    '{"status_code": 200,"result": { "max_rank_tags": { "215123565": { "shop_id": 215123565,"rank_name": "热门商家榜-月度","rank_no": 1,"rank_item_name": "月度签单量","rank_item_score": "1","rank_over_percent": 0,"station_name": "上海","rank_id": 10,"in_rank_num": 1 } } }}'
  get() {
    let a: ResponseResult = JSON.parse(this.str) as ResponseResult
    let c: string = JSON.stringify(a.result.max_rank_tags)
    let jsonRecord: Map<string, ShopInfo> = new Map(Object.entries(JSON.parse(c)))
    jsonRecord.forEach((value, key) => {
      console.log("key:" + key)
    })
  }
  build() {
    Text('asadasd').onClick(() => {
      this.get()
    })
  }
}
  • 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.
分享
微博
QQ
微信
回复
2024-12-23 18:03:55


相关问题
HarmonyOS 如何遍历包含emoji的字符串
1080浏览 • 1回复 待解决
如何打印JSON对象和JSON字符串
1157浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串
1737浏览 • 1回复 待解决
ResourceStr 类型如何转成字符串
1296浏览 • 1回复 待解决
如何解析JSON字符串
2093浏览 • 1回复 待解决
HarmonyOS 超长JSON字符串解析
1104浏览 • 2回复 待解决
如何实现Map转JSON字符串
1934浏览 • 1回复 待解决
mysql order对数字字符串排序
2899浏览 • 1回复 待解决
嵌套JSON字符串解析问题
2767浏览 • 1回复 待解决
如何将对象转为JSON字符串
1251浏览 • 1回复 待解决
如何JSON字符串转为Map
927浏览 • 1回复 待解决
HarmonyOS string类型字符串截取
1768浏览 • 1回复 待解决