java - Json访问字段名 "*"到Java类

标签 java android json wikipedia-api retrofit2

javascript 中的类似问题:

我试图在我的 android 应用程序中使用 Retrofit(moshi 转换器)处理 wikipedia api。但是我不能用“*”作为字符串编写 java 类 Text。

维基百科 json 请求 example .

编辑:如果有帮助。一切正常,除了 String _;因为它不是“*”。

public class Text {

  private String _;
  private Map<String, Object> additionalProperties = new HashMap<String, Object>();

  public String get_() {
    return _;
  }

  public void set_(String _) {
    this._ = _;
  }

  public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
  }

  public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
  }
}

,

public class Section {

  private Parse parse;
  private Map<String, Object> additionalProperties = new HashMap<String, Object>();

  public Parse getParse() {
    return parse;
  }

  public void setParse(Parse parse) {
    this.parse = parse;
  }

  public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
  }

  public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
  }

}

,

public class Parse {

  private String title;
  private Integer pageid;
  private Text text;
  private Map<String, Object> additionalProperties = new HashMap<String, Object>();

  public String getTitle() {
    return title;
  }


  public void setTitle(String title) {
    this.title = title;
  }


  public Integer getPageid() {
    return pageid;
  }


  public void setPageid(Integer pageid) {
    this.pageid = pageid;
  }


  public Text getText() {
    return text;
  }


  public void setText(Text text) {
    this.text = text;
  }

  public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
  }

  public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
  }

}

最佳答案

您没有说明您使用的是哪个 JSON 库,每个库的答案都不一样。我将采用 Gson。

您可以使用 @SerializedName 注释来读取/写入与您定义的字段名称不同的 JSON 键。

@SerializedName("*")
public String star;

这将生成类似 {"*": ...} 的 JSON 并以相同的格式读取 JSON。

Java 中的大多数 JSON 库都有执行此操作的某种机制,因此如果您使用 Gson 以外的库,则需要查阅其文档以了解如何更改字段名称。

关于java - Json访问字段名 "*"到Java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36900448/

相关文章:

java - 如何删除空白数据?

android - 如何通过 Android Studio 对动态功能模块执行 UI 测试?

android - 以编程方式阻止 View 寻呼机中的页面滑动

java - 根据键对 JSON 对象/字符串进行排序

javascript - 如何根据特定值对json数据进行排序?

java - CORBA + Tomcat 6 + Webapp 类加载器泄漏

在 Netbeans 中编写代码时 Java 导入错误

java - 如何定义用户类以避免 NullPointerException?

Android:如何让SearchView 占据ActionBar 的整个水平空间?

json - Play框架2.3.4读取带有可变数字键的JSON