HarmonyOS json转换失败

let json = "{'REQUESTS': [{'REQ_COMM_DATA': { 'service': '11', 'REQ_MSG_HDR': { 'LANGUAGE': 'zh_CN', 'OP_CODE': '1' }}}]}"; 
JSON.parse(json) 

报错:

Error message:Unexpected Object Prop in JSON

该怎么解决呢?

HarmonyOS
2025-01-10 08:30:06
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以使用第三方库reflect-metadata和class-transformer。

安装方法:

ohpm install class-transformer 
ohpm install reflect-metadata 

参考代码:

import 'reflect-metadata';
import { plainToClass, Type } from 'class-transformer';

class ResponseObj {
  @Type(() => Person)
  data: Person[] = [];
}

@Entry
@Component
struct Index {
  @State list: Person[] = [];
  @State message: string = 'Click me';
  aboutToAppear(): void {
    let str = '{"data" : [{"number" :1, "testA": { "str" : "123"}},{"number" :2,"age": 21,"testA": {"str" : "456"}},{"number" :3,"age": 22,"testA": {"str" : "789"}}]}'
    let jsonData: ESObject = JSON.parse(str)
    let responseObj: ResponseObj = plainToClass(ResponseObj, jsonData);
    console.log( `test====${responseObj.data[0] instanceof Person}`)
    this.list = this.list.concat(responseObj.data);
  }
  build() {
    Row() {
      Column() {
        ForEach(this.list, (item: Person, index: number) => {
          ViewA({ index: index,age:item.hasAge(), testA: item.testA })
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}
@Observed
export class TestA {
  public str : string
  constructor(str: string) {
    this.str = str;
  }
}
export class Person {
  name: string = ''
  age: number = 1
  @Type(()=>TestA)
  testA: TestA = new TestA('')
  hasAge():number
  {
    return this.age
  }
}
@Component
export struct ViewA {
  @ObjectLink testA: TestA
  index: number = -1;
  age:number = 0
  build() {
    Row(){
      Button(`View A  ${this.testA.str}`).onClick(() =>{
        this.index += 1;
        this.testA.str = `${this.index} : Test A String ${this.age}`
      })
    }.margin({top : 10 })
  }
}
分享
微博
QQ
微信
回复
2025-01-10 11:39:34
相关问题
HarmonyOS json转换模型问题
275浏览 • 1回复 待解决
HarmonyOS JSON与对象转换
500浏览 • 1回复 待解决
HarmonyOS json转换成对象
435浏览 • 2回复 待解决
HarmonyOS json模型转换缺省值
145浏览 • 1回复 待解决
HarmonyOS网络请求后JSON转换问题
1202浏览 • 1回复 待解决
HarmonyOS JSON转对象失败
670浏览 • 1回复 待解决
HarmonyOS JSON转换后调用对象方法报错
521浏览 • 1回复 待解决
HarmonyOS 使用DES解密,转换 smkey失败
683浏览 • 1回复 待解决
ohos.util.json转换string问题
565浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
1066浏览 • 1回复 待解决
Map类型怎么转换Json string
2630浏览 • 1回复 待解决
泛型参数转换为Object编译失败
1023浏览 • 1回复 待解决
如何在ArkTS中实现JSON和Map的转换
3971浏览 • 1回复 待解决
HarmonyOS 国密SM2转换公钥失败
507浏览 • 1回复 待解决
json 如何转换成自定义的业务类对象
1184浏览 • 1回复 待解决
json字符串与自定义class结构的转换
2383浏览 • 1回复 待解决