HarmonyOS 鸿蒙Next网络数据下划线key的json转换成驼峰model
HarmonyOS 鸿蒙Next网络数据下划线key的json转换成驼峰model
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) => {
<span class="hljs-keyword">const</span> camelCaseKey = p1.replace(<span class="hljs-regexp">/_([a-z])/g</span>, (match, group) => 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)
}
看是否满足你的要求,欢迎入群讨论
二维码失效了哈,最终用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