【问题标题】:Recieve HTTP POST from AJAX, and read it in backend java从 AJAX 接收 HTTP POST,并在后端 java 中读取
【发布时间】:2014-10-20 09:31:43
【问题描述】:

我正在制作票务系统。前端是 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 请求的数组。如果没有,那么我想知道如何解决这个问题。 这个问题在下面的帖子中得到了回答。

【问题讨论】:

  • 您的意思是说您希望 JSON 中的 student150 等为 Stringint 等并在 setter 方法中设置或在 Java 代码中的其他位置使用?
  • 没错。 gson 是否处理列表参数??

标签: java javascript json http


【解决方案1】:

我会试着通过你的问题来猜测你的意思。

  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 能够按原样反序列化。

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2019-11-09
    • 2017-08-23
    相关资源
    最近更新 更多