C# 如何使用C将JSON文本转换为对象#

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",

如何将以下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", "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);
    }