HarmonyOS 鸿蒙Next网络数据下划线key的json转换成驼峰model

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

HarmonyOS 鸿蒙Next网络数据下划线key的json转换成驼峰model

如题,请问这种数据转换如何实现呢

9 回复
export  class CamelCaseConverter {

public static convertKeysToCamelCase(jsonStr): string {

<span class="hljs-keyword">const</span> camelCaseJsonStr = jsonStr.replace(<span class="hljs-regexp">/"(\w+)":/g</span>, (match, p1) =&gt; {
  <span class="hljs-keyword">const</span> camelCaseKey = p1.replace(<span class="hljs-regexp">/_([a-z])/g</span>, (match, group) =&gt; group.toUpperCase());
  <span class="hljs-keyword">return</span> `<span class="hljs-string">"${camelCaseKey}"</span>:`;
});

<span class="hljs-keyword">return</span> camelCaseJsonStr;

}

}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

楼主你好,可以试下如下方案。

  underlineToHump(str: string): string {

    return str.replace(/_([a-z])/g, (match:string, group:string) => group.toUpperCase());

  }

  aboutToAppear(): void {

    let  str = 'ab_cd'

    let result = this.underlineToHump(str)

    console.log(result)

  }

cke_2161.png

看是否满足你的要求,欢迎入群讨论

cke_1777.png

二维码失效了哈,最终用ts写就可以了,ets不行

哈哈,我也是用ts写的

这里边,不支持代码格式化,我贴后面了

自己写个工具方法

在尝试写,但是语法上一直在报错。。。

在HarmonyOS鸿蒙系统中,将网络数据下划线key的JSON转换成驼峰命名的Model,通常可以通过自定义反序列化逻辑来实现。这涉及到JSON解析库的使用,比如在Java环境中常用的Gson或Jackson。

以Gson为例,可以通过自定义TypeAdapter或FieldNamingPolicy来实现下划线key到驼峰命名的转换。首先,创建一个自定义的FieldNamingPolicy,该策略将下划线分隔的字段名转换为驼峰命名。然后,在GsonBuilder中设置这个自定义的FieldNamingPolicy。

对于Jackson,可以使用PropertyNamingStrategy来自定义字段名的转换逻辑。编写一个继承自PropertyNamingStrategy的类,重写translate方法来实现下划线到驼峰命名的转换,并在ObjectMapper中设置这个自定义的命名策略。

这两种方法都能有效地将JSON中的下划线key转换为Java对象中的驼峰命名属性。确保在转换过程中正确处理所有字段,特别是那些可能包含特殊字符或需要额外处理的字段。

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

回到顶部