Json访问字段名称" *"到Java类

时间:2016-04-27 20:40:51

标签: java android json wikipedia-api retrofit2

javascript中的类似问题:

我试图在我的Android应用程序中使用Retrofit(moshi转换器)来处理wikipedia api。但我不能用" *"来编写java类文本。作为一个字符串。

维基百科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);
  }

}

1 个答案:

答案 0 :(得分:2)

您没有指出您使用的是哪个JSON库,每个JSON库的答案都不同。我要去担任Gson。

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

@SerializedName("*")
public String star;

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

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