[英]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.