簡體   English   中英

JsonConvert.SerializeObject將雙精度轉換為字符串

[英]JsonConvert.SerializeObject Turning Double Into String

我正在將一個對象傳遞給JsonConvert.SerializeObject,希望將所述對象轉換為JSON字符串以用於API。...在序列化之前,該對象如下所示:

var hotelBedsSearchRequest = new HotelBedsSearchRequest()
            {
                stay = new Stay
                {
                    checkIn = "2016-06-08",
                    checkOut = "2016-06-10",
                    shiftDays = "2"
                },
                occupancies = new Occupancy[]
                {
                    new Occupancy
                    {
                        rooms = 1,
                        adults = 2,
                        children = 1,
                        paxes = new Pax[]
                        {
                            new Pax
                            {
                                type = "AD",
                                age = 30
                            },
                            new Pax
                            {
                                type = "AD",
                                age = 30
                            },
                            new Pax
                            {
                                type = "CH",
                                age = 8
                            }
                        }
                    }
                },
                geolocation = new Geolocation
                {
                    longitude = 2.646633999999949,
                    latitude = 39.57119,
                    radius = 20,
                    unit = "km"
                }
            };

除了緯度和經度,所有字段都可以序列化,當我將其序列化為JSON字符串並在Visual Studio中以json格式查看時,它們看起來像這樣:

在此處輸入圖片說明

為什么lat和long會以字符串形式出現? 在類模式中將其指定為雙精度類型...我嘗試了兩種最常見的序列化技術(Newtonsoft和內置)都做同樣的事情...當我運行API時,我收到一個400錯誤的錯誤請求,並且我在想這是經緯度和長數據類型的這種錯誤表示...雖然不確定,但任何幫助都將是驚人的!

這是地理位置類:

    public class Geolocation
{
    public double longitude { get; set; }
    public double latitude { get; set; }
    public int radius { get; set; }
    public string unit { get; set; }
}

這是序列化的JSON輸出為文本的形式:

{"stay":{"checkIn":"2016-06-08","checkOut":"2016-06-10","shiftDays":"2"},"occupancies":[{"rooms":1,"adults":2,"children":1,"paxes":[{"type":"AD","age":30},{"type":"AD","age":30},{"type":"CH","age":8}]}],"geolocation":{"longitude":2.6466341018676758,"latitude":39.571189880371094,"radius":20,"unit":"km"},"adults":0} 

這是序列化和API調用:

var json = new JavaScriptSerializer().Serialize(request);
var response = client.UploadString(endpoint, "POST", json);
var ans = DeserializeResult(response);

已修復,與傳遞錯誤的結構無關,請求類僅被構建為錯誤的...抱歉。 我沒有意識到,即使您不為架構中的字段傳遞任何內容,它也仍然會在您上課時顯示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM