javascript - 如何使用 JSON 在 Rest API 请求中发送不带引号的数值

标签 javascript json api

我正在创建一个网站。在此网站中,我使用了 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/

相关文章:

javascript - 制作 'common' login.js 包含;使用 nightwatch.js 测试

javascript - 在javascript php中隐藏可见的div并显示另一个div?

c# - 序列化和反序列化的 NullValueHandling 的不同值

java - 无法从另一个类获取 ArrayList。它总是空的

javascript - JSON 的频率分布

android - 获取订阅信息时来自 Google Play Android Developer REST API 的错误 500

javascript - D3Js 使用调用更新错误的元素

javascript - 在 jQuery UI MultiSelect Widget 中选择复选框

javascript - JSON 中未定义值的尝试/捕获失败 - JavaScript

javascript - 使用 Store Locator Library for Maps API 中的 'storeLocator.Feature' 的下拉菜单