Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java将动态Json转换为POJO类的特定格式_Java_Json_Jakarta Ee_Jackson - Fatal编程技术网

如何使用Java将动态Json转换为POJO类的特定格式

如何使用Java将动态Json转换为POJO类的特定格式,java,json,jakarta-ee,jackson,Java,Json,Jakarta Ee,Jackson,输入Json文件如下代码所示: { "Payload": { "any0": { "pricingResponse": { "priceDetails": { "priceDetails": { "seqId": "8015B000000Umo1QAC-", "companyCode": "EPA",

输入Json文件如下代码所示:

 {
      "Payload": {
        "any0": {
          "pricingResponse": {
            "priceDetails": {
              "priceDetails": {
                "seqId": "8015B000000Umo1QAC-",
                "companyCode": "EPA",
                "priceType": "Fuel Price",
                "priceRequestSource": ""
              },
              "priceLineItems": {
                "lineItem": [
                  {
                    "lineItemInfo": {
                      "seqId": "8015B000000Umo1QAC-28052018105047-022596",
                      "orderId": "00000266",
                      "lineItemId": "44",
                      "itemId": "70051",
                      "quantity": "100.00",
                      "unitPrice": "2.03200",
                      "unitPriceLCY": "2.03200"
                                   }
                    }
                            ]
                    }
                }
             }
           }
         }
      }
预期输出(java类)

这是我得到的输出

是否有可能将动态嵌套的Json类文件转换为Java类?任何帮助都将不胜感激

对包含可变键和不变值(类型为
ValueClass
)的每个结构使用
Map


如果您还希望使用变量值结构反序列化映射,则需要编写一个自定义反序列化器,以推断JSON应反序列化到哪个Java类

有一些基于Java的类似Jackson的库可以封送和解封JSON。
 public class Payload 
   {
      public Any0 any0;
   }

    /* Stub Class for Any0 */
   public class Any0 
   {
        public PricingResponse pricingResponse;
   }

    /* Stub Class for PricingResponse */
    public class PricingResponse 
    {
        public PriceDetails priceDetails;
    }

    /* Stub Class for PriceDetails */
    public class PriceDetails 
    {
        public String seqId;
        public String priceRequestSource;
        public String companyCode;
        public String priceType;
        public String deliveryType;
        public String currencyCode;
        public String priceDate;
        public String applyOrderQuantity;
        public String totalOrderQuantity;
        public String customerId;
        public String shipToId;
        public String supplyLocationId;
        public String transporterId;
        public String onRun;
        public String orderId;
        public PriceDetails priceDetails;
        public PriceLineItems priceLineItems;
        public Error Error;
    }

    /* Stub Class for PriceLineItems */
    public class PriceLineItems 
    {
        public String orderId;
        public List<LineItem> lineItem;
    }

    /* Stub Class for LineItem */
    public class LineItem 
    {
        public LineItemInfo lineItemInfo;
        public AccountingDetails accountingDetails;
        public Error Error;
    }
  public void convert2JSON(URL inputJson, File outputPojoDirectory, String packageName, String className) throws IOException
   {  
          JCodeModel codeModel = new JCodeModel();  
          URL source = inputJson;  
          GenerationConfig config = new DefaultGenerationConfig()
     {  
          @Override  
          public boolean isGenerateBuilders() 
          { // set config option by overriding method  
            return true;  
          }  
          public SourceType getSourceType()
          {  
            return SourceType.JSON;  
          }  

     };  
          SchemaMapper mapper = new SchemaMapper(new RuleFactory(config, new Jackson2Annotator(config), new SchemaStore()), new SchemaGenerator());  
          mapper.generate(codeModel, className, packageName, source);  
          codeModel.build(outputPojoDirectory);  
   }