我已经创建了一个REST GET服务,它为我提供“GET JSON响应”,如下所示:
{
"payload": {
"RFID": "E2005180040F003122202E5F",
"chassisNumber": "4654689761",
"vehicleNumber": "TN 01 1991"
},
"success": "true"
}现在我希望从下面的Post Request中获得Post Response:
Vehicle tag Request
{
"vehicle_no": "TN07B0054"
}我已经创建了post方法,但它将整个事件作为参数。
如何仅从vehicle标签请求将Vehicle参数作为"TN07B0054“。
以下是我发出上述车辆标签请求时的POST响应:
{
"payload": {
"vehicleNumber": "\"vehicle_no\": \"TN 07 B 0054\""
},
"success": "false"
}发布于 2017-07-24 17:20:37
您可以创建一个名为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 library (https://github.com/FasterXML/jackson)
如果您正在管理依赖项,则可以在pom.xml中添加依赖项,如下所示(如果您在本地维护依赖项,则不需要执行此步骤)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0.pr4</version>
</dependency>现在对您的车辆标签请求json进行反序列化。
使用Jackson的反序列化是使用ObjectMapper API完成的,如果你不使用注释,我已经做了一个示例代码片段,附在下面-
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请求
发布于 2017-07-25 02:50:52
这是无效的Json
{
"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+"]";
}
}https://stackoverflow.com/questions/45275982
复制相似问题