HarmonyOS 鸿蒙Next:如何将包含数组和对象的JSON字符串拼接为表单类型的字符串(application/x-www-form-urlencoded)

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:如何将包含数组和对象的JSON字符串拼接为表单类型的字符串(application/x-www-form-urlencoded)

{

    “osType”: “harmonyos”,

    “appM5”: “cccccccccccccccccc”,

    “version”: “v1.0.0”,

    “appId”: “xxxxxxxxxxxxxxxxxxxx”,

    “fontSize”: “middle”,

    “account”: “hz”,

    “password”: “123”,

    “loginType”: “0”,

    “user”: {

        “name”: “cc”,

        “age”: “18”

    }

}

http发送请求时,接口采用的是表单的提交方式,请问大佬们如何将类似于上述的json字符串拼接成表单格式再提交。重点是有些json中包含数组和对象

3 回复

当前可使用axios三方库重写transformRequest方法进行替代,可参考demo如下:

axios.post(this.url, formData, {
headers: { 'Content-Type': 'multipart/form-data' },
transformRequest:(data:Object)=>{
return data
}
}) 

先对json做一个展平处理
user.name
address.city等

在HarmonyOS或任何支持JavaScript的环境中,将包含数组和对象的JSON字符串转换为application/x-www-form-urlencoded格式,通常需要手动解析JSON并构建查询字符串。可以使用JavaScript的JSON.parse()来解析JSON字符串,然后通过遍历对象并构建键值对来实现。对于数组,需要将其元素迭代并转换为多个相同键的条目,或考虑使用特定的索引作为键的一部分。

这里有个基本的示例逻辑,但注意没有直接代码因为具体实现会根据你的数据结构而变化:

  1. 解析JSON字符串为JavaScript对象。
  2. 遍历对象,对于每个键值对,如果是数组,则遍历数组元素并添加为多个键值对;如果是对象,则递归处理或根据需求转换。
  3. 使用encodeURIComponent对键和值进行编码,并用&连接键值对。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部