HarmonyOS 鸿蒙Next 使用@kit.NetworkKit http模块网络请求问题 使用@kit.NetworkKit http模块进行网络请求时,发现个别接口获取的HttpResponse.result,经JSON.stringify打印后包含大量\t\n\,导致解析不正确

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

HarmonyOS 鸿蒙Next 使用@kit.NetworkKit http模块网络请求问题
使用@kit.NetworkKit http模块进行网络请求时,发现个别接口获取的HttpResponse.result,经JSON.stringify打印后包含大量\t\n\,导致解析不正确

开发工具版本:DevEco Studio 5.0.1 Release

编绎版本:API 13

并且JSON.stringify 后,前后还各加了 “”

我目前的做法是:在JSON.stringify后 把\t \n \和前后" 处理后,再用JSON.pase,才能转化成请求对象


更多关于HarmonyOS 鸿蒙Next 使用@kit.NetworkKit http模块网络请求问题 使用@kit.NetworkKit http模块进行网络请求时,发现个别接口获取的HttpResponse.result,经JSON.stringify打印后包含大量\t\n\,导致解析不正确的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复
可能是数据编码格式不一致导致的

更多关于HarmonyOS 鸿蒙Next 使用@kit.NetworkKit http模块网络请求问题 使用@kit.NetworkKit http模块进行网络请求时,发现个别接口获取的HttpResponse.result,经JSON.stringify打印后包含大量\t\n\,导致解析不正确的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我们的接口都是统一编码,有个别接口就出现了这种现象,而且我们有已上线原生的andorid端和ios端

试试换成Remote Communication Kit(远场通信服务)呢?现在推荐用Remote Communication Kit进行HTTP请求,Remote Communication Kit将持续演进。 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/remote-communication-rcp-V13

换成RCP后,目前是没有发现上述问题,观察一段时间看看

在使用HarmonyOS鸿蒙Next的@kit.NetworkKit http模块进行网络请求时,若遇到HttpResponse.resultJSON.stringify处理后包含大量\t\n\(制表符、换行符和反斜杠),这通常是由于服务器返回的JSON数据本身包含这些格式化字符。这些字符在标准的JSON解析中不应影响数据结构的正确性,但如果它们在解析过程中被误处理,可能是因为解析器对这些特殊字符的处理不够健壮。

可以尝试以下方法直接处理返回的字符串:

  1. 去除格式化字符:在JSON.parse之前,先使用正则表达式去除所有\t\n\字符。例如:

    let cleanedResult = HttpResponse.result.replace(/[\t\n\\]/g, '');
    let jsonData = JSON.parse(cleanedResult);
    
  2. 检查JSON解析器:确保你使用的JSON解析库能够正确处理包含特殊字符的JSON字符串。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部