Подтвердить что ты не робот

Загрузить текст JSON в объект класса в С#

Как я могу преобразовать следующий ответ Json в объект С#?

    { "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"]]]

] }
4b9b3361

Ответ 1

Сначала создайте класс для представления ваших 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 в десериализуем строку json соответствующему объекту класса.

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 classe. Ваш класс должен выглядеть так же, как структура JSON (Свойства)

Ответ 2

Я рекомендую вам использовать JSON.NET. это библиотека с открытым исходным кодом для сериализации и десериализации ваших объектов С# в объекты 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 enter image description here

Ответ 3

Чтобы создать класс json из строки, скопируйте строку.

В Visual Sudio выберите "Редактировать" > "Вставить" > "Вставить Json" в качестве классов.

Ответ 4

Это займет строку 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);
    }

Ответ 5

скопируйте свой Json и вставьте в текстовое поле на http://json2csharp.com/ и нажмите кнопку "Создать",

Класс cs будет создан с использованием этого файла cs, как показано ниже:

var generatecsResponce = JsonConvert.DeserializeObject(responseConetent);

где RootObject - имя сгенерированного файла cs;