C# 如何使用C将JSON文本转换为对象#
如何将以下JSON响应转换为C#对象 我建议你使用。它是一个开源库,用于将c#对象序列化并反序列化为json,将json对象序列化并反序列化为.net对象 序列化示例:C# 如何使用C将JSON文本转换为对象#,c#,json,C#,Json,如何将以下JSON响应转换为C#对象 我建议你使用。它是一个开源库,用于将c#对象序列化并反序列化为json,将json对象序列化并反序列化为.net对象 序列化示例: Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = new string[] { "Small",
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
string json = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "Expiry": new Date(1230422400000),
// "Price": 3.99,
// "Sizes": [
// "Small",
// "Medium",
// "Large"
// ]
//}
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
产品产品=新产品();
product.Name=“苹果”;
产品有效期=新的日期时间(2008年12月28日);
产品价格=399万元;
product.size=新字符串[]{“小”、“中”、“大”};
字符串json=JsonConvert.SerializeObject(产品);
//{
//“名称”:“苹果”,
//“到期日”:新日期(1230422400000),
//“价格”:3.99,
//“尺寸”:[
//“小”,
//“中等”,
//“大”
// ]
//}
Product deserializedProduct=JsonConvert.DeserializeObject(json);
与其他JSON序列化技术的性能比较
首先创建一个类来表示json数据
public class MyFlightDto
{
public string err_code { get; set; }
public string org { get; set; }
public string flight_date { get; set; }
// Fill the missing properties for your data
}
使用Newtonsoft JSON序列化程序对其对应的类对象进行序列化
var jsonInput = "{ org:'myOrg',des:'hello'}";
MyFlightDto flight = Newtonsoft.Json.JsonConvert.DeserializeObject<MyFlightDto>(jsonInput);
假设您希望将其转换为
客户
classe的实例。您的类应该类似于JSON
结构(属性)这将获取一个JSON字符串并将其转换为您指定的任何类
public static T ConvertJsonToClass<T>(this string json)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
return serializer.Deserialize<T>(json);
}
publicstatict ConvertJsonToClass(此字符串为json)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer=新的System.Web.Script.Serialization.JavaScriptSerializer();
返回序列化程序。反序列化(json);
}
要根据字符串创建json类,请复制该字符串
在Visual Sudio中,单击编辑>粘贴特殊内容>将Json粘贴为类。复制Json并粘贴到文本框上,然后单击生成按钮 将使用该cs文件生成一个cs类,如下所示: var generatedcsresponse=JsonConvert.DeserializeObject(yourJson)
其中RootObject是生成的cs文件的名称 如果您使用的是MVC,那么在支持这种转换方面有很多现成的方法。您也可以查看此链接:请参阅本文:我面临为该json响应构建类的问题任何人都可以为该json响应构建类吗可能重复的我无法为该json构建类response@shyju-太棒了。非常简单和直观嗨,塔哈,我的问题是我无法构建一个包含这个json的类的数据结构result@Vish:你应该有主课,例如;带有属性的FlightInfo,一个属性应为附表列表,例如;列表附表是第二类,也有一些属性。查看您的json字符串properly@Talha:是的,但是时间表包含什么类型的属性,因为在时间表中,数组中有数组。这并没有回答这个问题。令人惊讶的是,每个人都跳过了这个答案。是的,我认为这确实是当时的要求。这在VS2012(请参见此处:)中有点迂回,现在在VS2017中非常简单。非常有用,当使用JsonConvert进行转换时,您可能需要将委托创建为数组。在我的例子中,为了将JSON字符串转换为类,我必须这样做。反序列化对象(FootnoteJSON.Value)我不认为这是问题所在
string jsonInput="have your valid json input here"; //
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
Customer objCustomer = jsonSerializer.Deserialize<Customer >(jsonInput)
public static T ConvertJsonToClass<T>(this string json)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
return serializer.Deserialize<T>(json);
}