我正在创建一个网站。在此网站中,我使用了 Rest API。基本上我使用 JavaScript 和 Ajax 发送 JSON 请求。然后我创建了一个 HTML 表单来获取输入。现在我想从表单中获取数值,并希望将该值用作 JSON 请求中的变量。
这是 HTML 表单。
<form class="form-horizontal" method="POST" action="#" enctype="multipart/form-data" id="signupForm">
<div class="col-md-5 col-md-offset-1">
<div class="form-group">
<label class="label-control">Origin City</label>
<input type="text" class="form-control" name="OriginLocation" value="CMB" id="OriginLocation">
</div>
</div>
<div class="col-md-2 col-md-offset-1">
<div class="form-group">
<label class="label-control">Adults</label>
<select name="adults" class="form-control" id="adults">
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
</div>
<div class="col-md-8 col-md-offset-2">
<center><a href="#" id="ghsubmitbtn" class="btn btn-success">Search Flight Data</a></center>
</div>
</form>
我想使用“成人”作为此数量中的变量。然后我尝试了如下。当我尝试这样做时,它会发送带引号的请求。但是,我想发送这个值而不带引号。
我该怎么做?
这是 JSON 请求。
"TravelerInfoSummary": {
"SeatsRequested": [1],
"AirTravelerAvail": [{
"PassengerTypeQuantity": [{
"Code": "ADT", //adt cnn inf
"Quantity": adults // What I want - "Quantity": 1 and What I get "Quantity": "1"
},
{
"Code": "CNN",
"Quantity": 1
}
]
}]
}
这是我使用的JavaScript、Ajax。
<script type="text/javascript">
$(document).ready(function(){
$('#ghsubmitbtn').on('click', function(e) {
var adults = $('#adults').val();
var JSONObj = {
"TravelerInfoSummary": {
"SeatsRequested": [1],
"AirTravelerAvail": [{
"PassengerTypeQuantity": [{
"Code": "ADT", //adt cnn inf
"Quantity": 1
},
{
"Code": "CNN",
"Quantity": 1
},
{
"Code": "INF",
"Quantity": 2
}
]
}]
}
};
var data = JSON.stringify(JSONObj);
$.ajax({
url: 'https://api-crt.cert.havail.sabre.com/v4.2.0/shop/flights?mode=live&limit=50&offset=1',
method: 'POST',
contentType:"application/json; charset=utf-8",
data: data,
headers: {"Authorization": 'Bearer ' + bat},
success: function (data) {
console.log(data);
for (var v = 0; v <= 999; v++) {
var row = $('<tr><td>' + data.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary[v].SequenceNumber + '</td><td>'
+ data.OTA_AirLowFareSearchRS.PricedItineraries.PricedItinerary[v].AirItinerary.OriginDestinationOptions.OriginDestinationOption[0].FlightSegment[0].DepartureDateTime + '</td><td>'
$('#tblData').append(row);}
},
});
});
</script>
最佳答案
value="1"
表示您从 $('#adults').val()
获得的值将是字符串 1
。要将其转换为整数1
,请使用parseInt
。
像这样:
...
"Quantity": parseInt(adults, 10) // always supply radix 10 for safety
...
JSON.stringify
现在将知道“Quantity”
的值是一个数字,并相应地对其进行序列化。
关于javascript - 如何使用 JSON 在 Rest API 请求中发送不带引号的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219570/