[英]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.