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

dddzy1tm  于 2023-01-03  发布在  C#
关注(0)|答案(6)|浏览(177)

如何将以下JSON响应转换为C#对象?

{ 
    "err_code": "0", 
    "org": "CGK", 
    "des": "SIN", 
    "flight_date": "20120719",
    "schedule": [
        ["W2-888","20120719","20120719","1200","1600","03h00m","737-200","0",[["K","9"],["F","9"],["L","9"],["M","9"],["N","9"],["P","9"],["C","9"],["O","9"]]],
        ["W2-999","20120719","20120719","1800","2000","01h00m","MD-83","0",[["K","9"],["L","9"],["M","9"],["N","9"]]]
    ]
}
qzlgjiam

qzlgjiam1#

1.要从JSON字符串创建类,请复制字符串。
1.在Visual Studio顶部的菜单中,单击“编辑”〉“选择性粘贴”〉“将Json粘贴为类”。
1.通过Nuget安装Newtonsoft.Json
1.将以下代码粘贴到项目中,“jsonString”是要反序列化的变量:
第一个月
1.别忘了重命名根对象,使其更具描述性,例如ILoveTheSmellOfNapalmInTheMorning(这是一个笑话)

sg3maiej

sg3maiej2#

首先创建一个类来表示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序列化器Deserialize a json string转换为其对应的类对象。

var jsonInput = "{ org:'myOrg',des:'hello'}"; 
MyFlightDto flight = Newtonsoft.Json.JsonConvert.DeserializeObject<MyFlightDto>(jsonInput);

或者使用JavaScriptSerializer将其转换为类(* 不推荐使用,因为newtonsoft json序列化器似乎性能更好 *)。

string jsonInput="have your valid json input here"; //
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
Customer objCustomer  = jsonSerializer.Deserialize<Customer >(jsonInput)

假设你想把它转换成一个Customer类的示例,你的类应该看起来像JSON结构(属性)

x6yk4ghg

x6yk4ghg3#

我推荐你使用JSON.NET .它是一个开源库,可以将你的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);

与其他JSON序列化技术的性能比较

rqqzpn5f

rqqzpn5f4#

复制您的Json并粘贴到http://json2csharp.com/上的文本框,然后单击“生成”按钮,
将使用该cs文件生成一个cs类,如下所示:
var generatedcsResponce = JSON转换.反序列化对象(您的JSON);
其中RootObject是生成的cs文件的名称;

1cklez4t

1cklez4t5#

这将获取一个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);
    }
emeijp43

emeijp436#

class Program
{
    static void Main(string[] args)
    {
        var res = Json; //Json that has to be converted

        Response resp = new Response();
        resp = JsonSerializer.Deserialize<Response>(res);

        Console.WriteLine(res);
    }
}

public class Response
{
    public bool isValidUser { get; set; }
    public string message { get; set; }
    public int resultKey { get; set; }
}

相关问题