我创建了一个REST Web服务,它给了我 '获得JSON响应' as:
{
"payload": {
"RFID": "E2005180040F003122202E5F",
"chassisNumber": "4654689761",
"vehicleNumber": "TN 01 1991"
},
"success": "true"
}
现在我想要帖子回复来自下面的帖子请求:
Vehicle tag Request
{
"vehicle_no": "TN07B0054"
}
我已经创建了post方法,但它将整个事情作为参数。
如何将车辆参数作为" TN07B0054"仅来自车辆标签请求。
以下是我提供上述车辆标记请求时的POST
响应:
{
"payload": {
"vehicleNumber": "\"vehicle_no\": \"TN 07 B 0054\""
},
"success": "false"
}
答案 0 :(得分:0)
您可以创建名为 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
使用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响应
答案 1 :(得分:0)
这是无效的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+"]";
}
}