HarmonyOS JSON数据解析问题

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

用JSON.stringify缓存了一个对象,等我取出来用的时候,用JSON.parse解析得到是字符串,不是原来的数据结构对象。这个是什么原因导致的?

解决方案

应该是用JSON.stringify多转了一层,可以用JSON.parse再解析一层试试,可以参考以下demo:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            let str = "{\"name\":\"xxxx\",\"age\":\"18\",\"demo\":{\"a\":10,\"b\":20}}";
            let str1 = JSON.stringify(str)
            let obj: ESObject = JSON.parse(JSON.parse(str1))
            console.log('获取对象demo属性结果:' + obj['demo']['a'])
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

根据提供的PreferencesUtil代码可以看到其中的setValue方法内部对您保存的值value也进行了一次JSON.stringify(value)处理,导致需要两次JSON.parse才能将对象解析出来。PreferencesUtil对应代码块如下:

 /**
   * 保存的数据
   * @param key  保存的字段名称
   * @param value
   */
  public setValue<T>(key: string, value: T) {
    let localPreferences: Promise<preferences.Preferences>
      = GlobalContext.getContext().getObject(GlobalContext.LOCAL_PREFERENCES) as Promise<preferences.Preferences>;
    localPreferences.then(async (pref: preferences.Preferences) => {

//这里也进行了一次JSON.stringify(value)处理
      await pref.put(key, JSON.stringify(value));
      pref.flush();
    }).catch((error: BusinessError) => {
      Logger.error(TAG, JSON.stringify(error))
    });
  }
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS json解析问题
545浏览 • 1回复 待解决
如何对JSON数据进行解析优化
803浏览 • 1回复 待解决
HarmonyOS json 解析
70浏览 • 1回复 待解决
嵌套JSON字符串解析问题
2083浏览 • 1回复 待解决
HarmonyOS json解析异常
548浏览 • 1回复 待解决
HarmonyOS 服务端JSON字符串解析问题
603浏览 • 1回复 待解决
HarmonyOS使用json解析报错
1398浏览 • 2回复 待解决
HarmonyOS json解析特殊字符
58浏览 • 1回复 待解决
HarmonyOS JSON解析number丢失精度
403浏览 • 1回复 待解决
HarmonyOS 数据解析
57浏览 • 1回复 待解决
HarmonyOS 怎么解析本地文件json内容?
198浏览 • 1回复 待解决
HarmonyOS 超长JSON字符串解析
52浏览 • 1回复 待解决
HarmonyOS JSON解析实体方法无法调用
51浏览 • 1回复 待解决
HarmonyOS json数据和对象互转时问题
61浏览 • 2回复 待解决
HarmonyOS http请求的JSON数据定义问题
263浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串?
624浏览 • 1回复 待解决