簡體   English   中英

JSON發布請求的JSON發布響應

[英]JSON Post Response from JSON Post Request

我創建了一個REST Web服務,它為我提供了“ GET JSON Response”:

 {
        "payload": {
            "RFID": "E2005180040F003122202E5F",
            "chassisNumber": "4654689761",
            "vehicleNumber": "TN 01 1991"
        },
        "success": "true"
    }

現在我想從下面的Post Request中發布Post Response:

Vehicle tag Request
{
  "vehicle_no": "TN07B0054"
 }

我已經創建了post方法,但是它把整個東西當作參數。

僅從“車輛”標簽請求中如何將車輛參數作為“ TN07B0054”。

當我給出上面的車輛標簽請求時,以下是POST響應:

{
    "payload": {
        "vehicleNumber": "\"vehicle_no\": \"TN 07 B 0054\""
    },
    "success": "false"
}

您可以創建一個名為VehicleTagRequest的實體

public class VehicleTagRequest {
    private String vehicle_no;

    public String getVehicle_no() {
        return vehicle_no;
    }

    public void setVehicle_no(String vehicle_no) {
        this.vehicle_no = vehicle_no;
    }
}

將字符串反序列化到上述Java對象上的最簡單方法是使用Jackson庫https://github.com/FasterXML/jackson

如果您是用於依賴項管理的Maven ,則可以在pom.xml中添加如下所示的依賴項(如果您在本地維護依賴項,則不需要此步驟)

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.0.pr4</version>
        </dependency>

現在開始對您的車輛標簽請求json反序列化

如果您不使用注釋,則可以使用ObjectMapper API完成使用Jackson的反序列化,我在下面附加了一個示例代碼段-

public class VehicleSerialisation {

    public static void main(String[] args) {
        String vehicle = "{\"vehicle_no\": \"TN07B0054\"}";

        ObjectMapper objectMapper = new ObjectMapper();
        VehicleTagRequest vehicleTagRequest = null;
        try {
            vehicleTagRequest = objectMapper.readValue(vehicle, VehicleTagRequest.class);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.print(vehicleTagRequest.getVehicle_no());
    }
}

然后,您可以使用vehicleTagRequest.getVehicle_no()來形成GET JSON Response請求

這是無效的傑森

{
    "payload": {
        "vehicleNumber": "\"vehicle_no\": \"TN 07 B 0054\""
    },
    "success": "false"
}

沒有轉義符

{
    "payload": {
        "vehicleNumber": "vehicle_no": "TN 07 B 0054"
    },
    "success": "false"
}

你可以這樣使用

{
        "payload": {
            "vehicleNumber": {
          "vehicle_no": "TN 07 B 0054"
              }
        },
        "success": "false"
    }

你的POJO應該像

public class MyPojo
{
    private Payload payload;

    private String success;

    public Payload getPayload ()
    {
        return payload;
    }

    public void setPayload (Payload payload)
    {
        this.payload = payload;
    }

    public String getSuccess ()
    {
        return success;
    }

    public void setSuccess (String success)
    {
        this.success = success;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [payload = "+payload+", success = "+success+"]";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM