Json访问字段名*&引用;到Java类

Json访问字段名*&引用;到Java类,java,android,json,wikipedia-api,retrofit2,Java,Android,Json,Wikipedia Api,Retrofit2,类似问题如下: 我试图在我的android应用程序中使用改型(moshi converter)处理wikipedia api。但是我不能用“*”作为字符串编写java类文本 维基百科json请求 编辑:如果有帮助的话。除了弦外,一切都正常;因为它不是“*” 公共类文本{ 私有字符串u3;; 私有映射additionalProperties=new HashMap(); 公共字符串get_u389;(){ 返回;; } 公共无效集(字符串){ 这个; } 公共映射getAdditionalProp

类似问题如下:

我试图在我的android应用程序中使用改型(moshi converter)处理wikipedia api。但是我不能用“*”作为字符串编写java类文本

维基百科json请求

编辑:如果有帮助的话。除了弦外,一切都正常;因为它不是“*”

公共类文本{
私有字符串u3;;
私有映射additionalProperties=new HashMap();
公共字符串get_u389;(){
返回;;
}
公共无效集(字符串){
这个;
}
公共映射getAdditionalProperties(){
返回此。附加属性;
}
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
,

公共类部分{
私有解析;
私有映射additionalProperties=new HashMap();
公共解析getParse(){
返回解析;
}
公共void setParse(解析){
this.parse=parse;
}
公共映射getAdditionalProperties(){
返回此。附加属性;
}
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
,

公共类解析{
私有字符串标题;
私有整数pageid;
私人文本;
私有映射additionalProperties=new HashMap();
公共字符串getTitle(){
返回标题;
}
公共无效集合标题(字符串标题){
this.title=标题;
}
公共整数getPageid(){
返回pageid;
}
public void setPageid(整数pageid){
this.pageid=pageid;
}
公共文本getText(){
返回文本;
}
公共void setText(文本){
this.text=文本;
}
公共映射getAdditionalProperties(){
返回此。附加属性;
}
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}

您没有指明使用的是哪个JSON库,每个库的答案都不同。我假设是格森

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

@SerializedName("*")
public String star;
这将生成类似JSON的
{“*”:…}
并以相同的格式读取JSON


Java中的大多数JSON库都有这样做的机制,因此,如果您使用的是Gson以外的库,您需要查阅它的文档,了解如何更改字段名称。

请发布您尝试过的代码。我无法创建带有“*”名称的Java类来保存jsonI使用的Moshi。改为Gson,answer工作无误Moshi的
@Json(name=“*”)
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);
  }

}
@SerializedName("*")
public String star;