簡體   English   中英

Json Jackson Object Mapper IO異常Android

[英]Json Jackson Object Mapper IO exception Android

我正在嘗試為Json提供對象的屬性。

我正在使用Jackson,而我的問題是嘗試將Json屬性映射到對象時是IO異常。

這是對象:

public class TextBox {
    private String label;
    private String type;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }
}

這就是我試圖將Json值賦予對象的方式。

public class JacksonObjectMapperExample {
    public TextBox JsonToTextBox () throws IOException {

        String jsonData="{\n" +
                "\t\"TextBox\" :\n" +
                "\t\t[\n" +
                "\t\t\t{\n" +
                "\t\t\t\t\"label\": \"Nombre\",\n" +
                "\t\t\t\t\"type\": \"TextBox\"\n" +
                "\t\t\t}\n" +
                "\t\t]\n" +
                "}";
        //create ObjectMapper instance
        ObjectMapper objectMapper = new ObjectMapper();
        //convert json string to object
        TextBox textbox = objectMapper.readValue(jsonData, TextBox.class);
        return textbox;
    }

}

我嘗試使用不同種類的Json格式,並嘗試從文件中讀取它。

有什么建議么? 謝謝

從JSON中刪除符號(“ \\ t”,“ \\ n”等)。

您還需要添加@JsonProperty(“ label”)(並鍵入)批注,並在TextBox類中創建一個空的構造函數。

您的JSON字符串應為(然后即可對其進行格式化):

"{TextBox:[{label:Nombre, type:TextBox}]}"

但是我認為此JSON格式不正確,為什么要在“ TextBox”中使用數組? 我認為應該是:

"{TextBox:{label:Nombre, type:TextBox}}"

問題是字段名稱TextBox,它正在textboxTextBox類中搜索它,但找不到它,我刪除了它,並格式化了JSON格式,如下所示:

"{\\n" + "\\t\\t\\t\\t\\"label\\": \\"Nombre\\",\\n" + "\\t\\t\\t\\t\\"type\\": \\"TextBox\\"\\n" + "\\t\\t\\t}";

正如dolphinziyo所說,所有的/ n和/ t都是可選的,下面是給出它的logcat:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:無法識別的字段“ textBox”(類com.example.ealcazar.jacksontest.TextBox),未標記為可忽略(2個已知屬性:“ label”,“ type”])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM