繁体   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