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