我希望有人可以帮我解决将数据序列化为类的问题吗?
我需要将以下json字符串发送到webservice:
{“arrivalAt”:“2012-12-24T20:00:00.0000000Z”,“皮卡”:{“streetName”:“Amaliegade”,“houseNumber”:“36”,“zipCode”:“1256”, “city”:“Copenhagen K”,“country”:“DK”,“lat”:55.68,“lng”:12.59},“dropoff”:{“streetName”:“Amaliegade”,“houseNumber”:“36” ,“zipCode”:“1256”,“city”:“Copenhagen K”,“country”:“DK”,“lat”:55.68,“lng”:12.59},“vehicleType”:“fourSeaterAny”,“comments” :“你好”}''
我将这个json字符串放入http://json2csharp.com/并生成以下类:
public class Pickup
{
public string streetName { get; set; }
public string houseNumber { get; set; }
public string zipCode { get; set; }
public string city { get; set; }
public string country { get; set; }
public double lat { get; set; }
public double lng { get; set; }
}
public class Dropoff
{
public string streetName { get; set; }
public string houseNumber { get; set; }
public string zipCode { get; set; }
public string city { get; set; }
public string country { get; set; }
public double lat { get; set; }
public double lng { get; set; }
}
public class RootObject
{
public string arrivalAt { get; set; }
public Pickup pickup { get; set; }
public Dropoff dropoff { get; set; }
public string vehicleType { get; set; }
public string comments { get; set; }
}
我之前已经设法做到这一点,但从来没有遇到类中有类的情况,可以这么说。意思是“皮卡”& “DropOff”设置......
当我试图弄清楚在这条线上做什么时,我感到困惑......
Booking bookingdetails = new ClickATaxi_Classes.Booking(THIS IS WHERE I WILL PUT THE 17 BITS OF INFORMATION BUT HOW?);
我觉得我需要对课程做些什么才能让它接受参数,但我不知道从哪里开始以及如何发送提货和下车信息
任何人都可以帮忙吗?
感谢
答案 0 :(得分:2)
首先,你应该重构一下这个生成的代码
public class Location
{
public string streetName { get; set; }
public string houseNumber { get; set; }
public string zipCode { get; set; }
public string city { get; set; }
public string country { get; set; }
public double lat { get; set; }
public double lng { get; set; }
}
public class Booking
{
public string arrivalAt { get; set; }
public Location pickup { get; set; }
public Location dropoff { get; set; }
public string vehicleType { get; set; }
public string comments { get; set; }
}
不需要两个意味着相同的类。之后,您将实例化预订对象。
Booking obj = new Booking { arrivalAt = "ARRIVAL", pickup = new Location { streetName = "", houseNumber = "" ... }, dropoff = new Location { streetName = "", houseNumber = "" ...}, vehicleType = "", comments = "" }
接下来,您将序列化为字符串,我喜欢JSON.NET,但您可以使用任何序列化程序 如果您想使用JSON.NET,可以通过Nuget通过following these instructions安装它,然后将using语句添加到将序列化对象的类的顶部: 使用Newtonsoft.Json;
最后只需调用JsonConvert
string json = JsonConvert.SerializeObject(product);
以下是其他序列化程序的一些链接:
答案 1 :(得分:0)
Json.NET。您需要一个JSON序列化程序。只需选择一个你喜欢的。已经列出的3个很棒。并确保阅读this article以更好地理解为什么需要JSON序列化程序。