从AJAX接收HTTPPOST,并在后端java中读取

Recieve HTTP POST from AJAX, and read it in backend java

本文关键字:后端 java 读取 AJAX 接收 HTTPPOST      更新时间:2023-09-26

我正在制作一个票证系统。前端是javacript/angular,使用ajax发送HTTP请求。我们现在的做法是把参数放在标题中,类似这样:

  numbPass: 3
  Total Price: 39

这是在一个订单下保存的,但有3名乘客。每位乘客的价格可能不同,包括普通乘客、学生和军人。因此,将总金额分摊到3不是一种选择。

今天,这些变量在后端接收到,如下所示:

 Gson gson = new Gson();
 WalkIn walkinRequest = gson.fromJson(req.getReader(), WalkIn.class);

我想要的是发送乘客名单,我发现这是可能的,就像这样:

var schedule = [];
    var passenger = { 
      type : 'student', 
      price' : 150,
    }
    schedule.push(passenger);
    var passenger = { 
      type : 'student', 
      'price' : 150,
    }
    schedule.push(passenger);

但是,我如何使用java在后端处理这些数据(将它们放在乘客对象中)?

编辑:可能很难理解我的要求。首先我想知道gson是否处理来自HTTP请求的数组处理。如果没有,那么我想知道如何解决这个问题。下面的帖子回答了这个问题。

我试着猜测你的问题是什么意思。

  1. 如果这是一个简单的反序列化问题,那么在Gson中,您可以读取这样的对象数组:

    WalkIn[] walkinRequests = gson.fromJson(req.getReader(), WalkIn[].class);
    
  2. 如果您想从更改WalkIn结构

    WalkIn
        int numbPass
        int totalPrice
    

    WalkIn
        PassengerWalkIn[]
        int numbPass
        int totalPrice
    PassengerWalkIn
        String type
        int price
    

    则GSON能够按原样对其进行反序列化。