如何在 spring 引导中将嵌套数据推送到第三方 API

how to push nested data to third party API in spring boot

请帮助将数据推送给第三方api,要求是四个嵌套的json对象我该怎么办请帮忙假设我们有这种对象 我想发送这种回复。但是,在服务 class 和 REST 控制器中我收到了错误。如何设置响应?

   "mode":"raw",
   "raw":{
      "service_provider":"Dhanuka",
      "data":[
         {
            "v_id":"4",
            "gpsData":[
               {
                  "lat":28.410576,
                  "lon":77.515912,
                  "sts":"running",
                  "loc":"Taj",
                  "spd":0,
                  "c_nm":"client",
                  "b_nm":"bb",
                  "b_id":"231",
                  "v_no":"DL1AA0001",
                  "v_tp":"car",
                  "speed_unit":"km/h",
                  "time_inMillis":"1581319502000",
                  "time":"2020-02-10 12:55:02",
                  "ign":"On",
                  "gps":true,
                  "_id":"5e417135d"
               }
            ]
         }
      ]
   },
   "options":{
      "raw":{
         "language":"json"
      }
   }
}

您可以将 JSON 转换为 Java 对象。

class A{
        private  String mode;
        private B raw;
        ...
    }
    class B{
        private String service_provider;
        private List<C> data;
        ...
    }
    class C{
        private String v_id;
        private List<D> gpsData;
        ...
    }
    class D{
        private double lat;
        ...
    }

您可以使用 json2csharp。它将帮助您将 json 对象转换为 pojo

例如,您的 json 的转换将是:

// import com.fasterxml.jackson.databind.ObjectMapper; // version 2.11.1
// import com.fasterxml.jackson.annotation.JsonProperty; // version 2.11.1
/* ObjectMapper om = new ObjectMapper();
Root root = om.readValue(myJsonString), Root.class); */
public class GpsData{
    public double lat;
    public double lon;
    public String sts;
    public String loc;
    public int spd;
    public String c_nm;
    public String b_nm;
    public String b_id;
    public String v_no;
    public String v_tp;
    public String speed_unit;
    public String time_inMillis;
    public String time;
    public String ign;
    public boolean gps;
    public String _id;
}

public class Datum{
    public String v_id;
    public ArrayList<GpsData> gpsData;
}

public class Raw{
    public String service_provider;
    public ArrayList<Datum> data;
    public String language;
}

public class Options{
    public Raw raw;
}

public class Root{
    public String mode;
    public Raw raw;
    public Options options;
}