2016-04-27 3 views
1

Похожий вопрос в javascript:Json имя поля доступа «*» для класса Java

Я пытался справиться с википедии ИПН с Модернизированный (Моши конвертер) в моем приложение для Android. Но я не могу написать текст класса Java с «*» как String.

Wikipedia json request 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); 
    } 

} 
+0

Пожалуйста, разместите код, который вы пробовали. –

+0

Я просто не могу создать класс java с именем «*» для хранения json – user345280

ответ

2

Вы не указали, какие JSON библиотеки вы используете, и ответ отличается для каждого. Я собираюсь взять на себя Гссона.

Вы можете использовать аннотацию @SerializedName, чтобы читать/писать другой ключ JSON, чем то, что вы определяете именем поля.

@SerializedName("*") 
public String star; 

Это произведет JSON как {"*": ...} и читать JSON в том же формате.

Большинство библиотек JSON в Java имеют некоторый механизм для этого, поэтому, если вы используете библиотеку, отличную от Gson, вам нужно будет проконсультироваться с ее документацией о том, как изменить имя поля.

+0

Я использовал Moshi. Изменен для Gson и ответ работает безупречно – user345280

+1

Для Moshi это '@Json (name =" * ")' –

Смежные вопросы