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
      }
    }
  }
}
HarmonyOS
3天前
浏览
收藏 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()
    })
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS 如何遍历包含emoji的字符串
459浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串
605浏览 • 1回复 待解决
如何打印JSON对象和JSON字符串
411浏览 • 1回复 待解决
ResourceStr 类型如何转成字符串
291浏览 • 1回复 待解决
HarmonyOS 超长JSON字符串解析
29浏览 • 1回复 待解决
如何解析JSON字符串
1288浏览 • 1回复 待解决
如何实现Map转JSON字符串
1146浏览 • 1回复 待解决
mysql order对数字字符串排序
2188浏览 • 1回复 待解决
如何将对象转为JSON字符串
599浏览 • 1回复 待解决
嵌套JSON字符串解析问题
2072浏览 • 1回复 待解决
如何JSON字符串转为Map
343浏览 • 1回复 待解决
HarmonyOS string类型字符串截取
668浏览 • 1回复 待解决
如何JSON字符串转Class对象
489浏览 • 1回复 待解决