Java 用Jackson解析复杂的JSON对象

Java 用Jackson解析复杂的JSON对象,java,android,json,jackson,arrays,Java,Android,Json,Jackson,Arrays,我需要用Jackson库解析相对复杂的JSON。你们能告诉我应该有什么Java类结构,以及用什么Jackson方法来解析下面的JSON对象吗 是这样的: { "firstField": "Something One", "secondField": "Something Two", "thirdField": [ { "thirdField_one": "Something Four", "thirdField_two": "Something Fiv

我需要用Jackson库解析相对复杂的JSON。你们能告诉我应该有什么Java类结构,以及用什么Jackson方法来解析下面的JSON对象吗

是这样的:

{
  "firstField": "Something One",
  "secondField": "Something Two",
  "thirdField": [
    {
      "thirdField_one": "Something Four",
      "thirdField_two": "Something Five"
    },
    {
      "thirdField_one": "Something Six",
      "thirdField_two": "Something Seven"
    }
  ],
  "fifthField": [
    {
      "fifthField_one": "Something… ",
      "fifthField_two": "Something...",
      "fifthField_three": 12345
    },
    {
      "fifthField_one": "Something",
      "fifthField_two": "Something",
      "fifthField_three": 12345
    }
  ]
}

我更熟悉Gson,但我认为这应该行得通

见下面斯塔克斯曼的注释:

Jackson不会自动检测私有字段(可以配置为@jsonautodect或全局)。所以字段应该是私有的,用@JsonProperty注释,或者具有匹配的公共getter

公共类MyClass{
私有字符串firstField,secondField;
私人第三场第三场;
私有第五字段第五字段;
公共静态类第三字段{
私人领域;
}
公共静态类ThirdFieldItem{
私有字符串第三字段1,第三字段2;
}
公共静态类第五字段{
私有列表第五字段;
}
公共静态类第五字段{
私有字符串第五个字段第1个,第五个字段第2个;
私人第五场;
}
}

我更熟悉Gson,但我认为这应该行得通

见下面斯塔克斯曼的注释:

Jackson不会自动检测私有字段(可以配置为@jsonautodect或全局)。所以字段应该是私有的,用@JsonProperty注释,或者具有匹配的公共getter

公共类MyClass{
私有字符串firstField,secondField;
私人第三场第三场;
私有第五字段第五字段;
公共静态类第三字段{
私人领域;
}
公共静态类ThirdFieldItem{
私有字符串第三字段1,第三字段2;
}
公共静态类第五字段{
私有列表第五字段;
}
公共静态类第五字段{
私有字符串第五个字段第1个,第五个字段第2个;
私人第五场;
}
}

正确,但与Gson不同的是,Jackson不会自动检测私有字段(可以通过
@jsonautodect
或全局配置)。因此字段应该是私有的,用
@JsonProperty
注释,或者具有匹配的公共getter。正确,除了与Gson不同,Jackson不会自动检测私有字段(它可以配置为,使用
@jsonautodect
或全局)。所以字段应该是私有的,用
@JsonProperty
注释,或者具有匹配的公共getter。您使用jackson获得解决方案了吗?您使用jackson获得解决方案了吗?
public class MyClass {
    private String firstField, secondField;
    private ThirdField thirdField;
    private FifthField fifthField;

    public static class ThirdField {
        private List<ThirdFieldItem> thirdField;
    }

    public static class ThirdFieldItem {
        private String thirdField_one, thirdField_two;
    }

    public static class FifthField {
        private List<FifthFieldItem> fifthField;
    }

    public static class FifthField {
        private String fifthField_one, fifthField_two;
        private int fifthField_three;
    }
}