[英]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.