鸿蒙Next开发中http请求返回的属性key含有横线如何处理
在鸿蒙Next开发中,使用http请求返回的JSON数据时,如果属性key包含横线(如"user-name"),应该如何正确解析?尝试用@SerializedName注解转换,但似乎不生效,是否有其他解决方案?
2 回复
鸿蒙Next里遇到带横线的JSON键?直接上@SerializedName注解!比如user-name,在字段上加@SerializedName("user-name"),让Gson乖乖听话。简单粗暴,专治各种不服的键名!
更多关于鸿蒙Next开发中http请求返回的属性key含有横线如何处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next开发中,当HTTP请求返回的JSON数据包含带横线(如user-name)的属性key时,可以通过以下方式处理:
1. 使用@JSONField注解(推荐)
在数据类中,使用@JSONField注解映射JSON字段名:
// 导入注解
import ohos.data.orm.annotation.JSONField;
public class User {
@JSONField(name = "user-name")
private String userName;
// Getter/Setter
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
2. 使用Gson的@SerializedName注解
如果使用Gson库:
import com.google.gson.annotations.SerializedName;
public class User {
@SerializedName("user-name")
private String userName;
// Getter/Setter...
}
3. 手动解析JSON
直接操作JSONObject处理特殊字段名:
// 示例:使用鸿蒙的JsonUtil
String jsonData = "{\"user-name\":\"张三\"}";
JsonObject jsonObject = JsonUtil.parse(jsonData).getAsJsonObject();
String userName = jsonObject.get("user-name").getAsString();
注意事项:
- 确保HTTP客户端库(如
HttpClient)已正确配置 - 测试时注意横线可能引发的序列化/反序列化异常
- 建议保持数据模型字段使用驼峰命名,仅通过注解关联JSON字段
选择方案时,优先推荐使用@JSONField注解,与鸿蒙开发框架兼容性最佳。

