HarmonyOS 鸿蒙Next怎么选取网络请求返回JSON中的某一个值转换为字符串

HarmonyOS 鸿蒙Next怎么选取网络请求返回JSON中的某一个值转换为字符串 我需要输出response的result中的content内容,但是这样选取就报错,直接将整个result转换成字符串就可以输出,但是我要的只是result 中的一部分

8 回复

我也遇到了这样的问题,请问您上边提的问题解决了没有?如果解决了,是通过怎样的方法解决的?

更多关于HarmonyOS 鸿蒙Next怎么选取网络请求返回JSON中的某一个值转换为字符串的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


新建接口对象,将JSON中的字段全部写入接口,将爆类型不能为ANY的用AS断言为这个接口类型,

会出现下列两个报错,

第一行报错为Argument of type 'string | Object | ArrayBuffer' is not assignable to parameter of type 'string'. Type 'Object' is not assignable to type 'string'. <ArkTSCheck>

第二行报错为Property 'choices' does not exist on type 'Object'. <ArkTSCheck>

HTTP请求根据响应头中content-type类型返回对应的响应格式内容,若HttpRequestOptions无expectDataType字段,按如下规则返回:

  • application/json:返回JSON格式的字符串。

  • application/octet-stream:ArrayBuffer。

  • image:ArrayBuffer。

  • 其他:string。

若HttpRequestOption有expectDataType字段,开发者需传入与服务器返回类型相同的数据类型。

综上所述,你只需要在请求头添加expectDataType字段,本地创建一个JSON数据结构的类型即可。

或者,- application/json:返回JSON格式的字符串。根据你请求头的这样设置,可以将response.result转化为对象。

if(response.responseCode === http.ResponseCode.0K){
let res = JSON.parse(response.result);
// 之后再从res中获取你需要content内容
}

基本信息

  • res会出现Use explicit types instead of “any”, “unknown” (arkts-no-any-unknown) <ArkTSCheck>,需要给定类型,

JSON格式的字符串可以直接 JSON.parse 吧?

不行,不知道为什么会报错,可以看一下我下面发的报错信息,

在HarmonyOS鸿蒙Next中,处理网络请求返回的JSON数据并提取某个值转换为字符串,可以使用ohos.utils中的Json类进行解析。假设网络请求返回的JSON字符串为response,步骤如下:

  1. 使用Json类的parse方法将JSON字符串解析为JsonValue对象。
  2. 通过JsonValue对象获取所需的字段值。
  3. 将获取的值转换为字符串。

示例代码:

import json from '@ohos.utils'; // 导入Json模块

let response = '{"name": "HarmonyOS", "version": 4.0}'; // 假设这是网络请求返回的JSON字符串
let jsonValue = json.parse(response); // 解析JSON字符串
let version = jsonValue['version']; // 获取version字段的值
let versionString = version.toString(); // 将值转换为字符串

在这个例子中,versionString就是提取并转换后的字符串值。

回到顶部