Json 访问字段名“*”到 Java class
Json access field name "*" to Java class
javascript 中的类似问题:
我试图在我的 android 应用程序中使用 Retrofit(moshi 转换器)处理维基百科 api。但是我不能写 java class 带有“*”的文本作为字符串。
维基百科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
注释用于 read/write 与您定义的字段名称不同的 JSON 键。
@SerializedName("*")
public String star;
这将像 {"*": ...}
一样生成 JSON 并以相同的格式读取 JSON。
Java 中的大多数 JSON 库都有一些执行此操作的机制,因此如果您使用 Gson 以外的库,则需要查阅其文档以了解如何更改名称一个字段。
javascript 中的类似问题:
我试图在我的 android 应用程序中使用 Retrofit(moshi 转换器)处理维基百科 api。但是我不能写 java class 带有“*”的文本作为字符串。
维基百科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
注释用于 read/write 与您定义的字段名称不同的 JSON 键。
@SerializedName("*")
public String star;
这将像 {"*": ...}
一样生成 JSON 并以相同的格式读取 JSON。
Java 中的大多数 JSON 库都有一些执行此操作的机制,因此如果您使用 Gson 以外的库,则需要查阅其文档以了解如何更改名称一个字段。