首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自JSON Post请求的JSON Post响应

来自JSON Post请求的JSON Post响应
EN

Stack Overflow用户
提问于 2017-07-24 16:44:39
回答 2查看 1.2K关注 0票数 0

我已经创建了一个REST GET服务,它为我提供“GET JSON响应”,如下所示:

代码语言:javascript
复制
 {
        "payload": {
            "RFID": "E2005180040F003122202E5F",
            "chassisNumber": "4654689761",
            "vehicleNumber": "TN 01 1991"
        },
        "success": "true"
    }

现在我希望从下面的Post Request中获得Post Response:

代码语言:javascript
复制
Vehicle tag Request
{
  "vehicle_no": "TN07B0054"
 }

我已经创建了post方法,但它将整个事件作为参数。

如何仅从vehicle标签请求将Vehicle参数作为"TN07B0054“。

以下是我发出上述车辆标签请求时的POST响应:

代码语言:javascript
复制
{
    "payload": {
        "vehicleNumber": "\"vehicle_no\": \"TN 07 B 0054\""
    },
    "success": "false"
}
EN

回答 2

Stack Overflow用户

发布于 2017-07-24 17:20:37

您可以创建一个名为VehicleTagRequest的实体

代码语言:javascript
复制
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中添加依赖项,如下所示(如果您在本地维护依赖项,则不需要执行此步骤)

代码语言:javascript
复制
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.0.pr4</version>
        </dependency>

现在对您的车辆标签请求json进行反序列化。

使用Jackson的反序列化是使用ObjectMapper API完成的,如果你不使用注释,我已经做了一个示例代码片段,附在下面-

代码语言:javascript
复制
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请求

票数 0
EN

Stack Overflow用户

发布于 2017-07-25 02:50:52

这是无效的Json

代码语言:javascript
复制
{
    "payload": {
        "vehicleNumber": "\"vehicle_no\": \"TN 07 B 0054\""
    },
    "success": "false"
}

不带转义字符

代码语言:javascript
复制
{
    "payload": {
        "vehicleNumber": "vehicle_no": "TN 07 B 0054"
    },
    "success": "false"
}

您可以像这样使用

代码语言:javascript
复制
{
        "payload": {
            "vehicleNumber": {
          "vehicle_no": "TN 07 B 0054"
              }
        },
        "success": "false"
    }

你的POJO应该是这样的

代码语言:javascript
复制
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+"]";
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45275982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档