Java Jackson解析动态JSON

我是杰克逊的新手,我在确定处理动态
JSON文件的最佳方法时遇到了一些问题.我知道我可以通过流式传输或树API解决问题,但这会涉及很多代码,这些代码不易维护.例如,采用以下两个json文件:

{
   something: "somethingValue"
   somethingelse: "anotherValue"
   url: "http://something.com"
}

{
   something: "somethingValue"
   somethingelse: "anotherValue"
   url: {
           service1: [
              "http://something.com",
              "https://something.com" ],
           service2: [
              "http://something2.com",
              "https://something2.com" ],
        }
}

解析后第一个json对象的默认行为,应该将URL添加到子类“URL”中的service1和service2 url列表中.其中第二个允许为每个URL指定非常具体的URL.我正在计划使用的url类的数据对象如下:

public class url {

   // ideally, I would use the java.net.URL instead of String
   public List<String> service1;    
   public List<String> service2;

   // also includes getter/setters using a fluent style
   ...
}

还会有一些其他父类具有URL和其他第一级json参数的参数.

在杰克逊处理这个问题的最佳方法是什么?

最佳答案 第二个是无效的JSON,这是:

{
   "something": "somethingValue",
   "somethingelse": "anotherValue",
   "url": {
           "service1" : [
              "http://something.com",
              "https://something.com" ],
           "service2" : [
              "http://something2.com",
              "https://something2.com" ]
        }
}

您可以使用类A创建/使用它,如下所示

class A{
 String something;
 String somethingElse;
 B url;
}

class B{
 Str service1;
 List<String> service2;
}

无论如何动态地实现任何东西,你必须把它放在列表中,因此不是上面的解决方案,你可以这样做

class A{
 String something;
 String somethingElse;
 B url;
}

class B{
 List<C> services;
}    

class C{
  List<String> service;
}
点赞