У меня есть строка JSON, как:Создание класса для де/сериализации
var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";
Я хочу создать класс для того же самого; как вы подходите при создании класса для строки JSON в C#?
У меня есть строка JSON, как:Создание класса для де/сериализации
var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";
Я хочу создать класс для того же самого; как вы подходите при создании класса для строки JSON в C#?
Если вы используете Visual Studio 2012, зайдите в меню до EDIT -> Paste Special -> Paste JSON As CLasses.
Вы действительный JSON, вероятно выглядеть следующим образом (вы должны удалить \
перед копированием его в буфер обмена):
{"Attributes": {"name":"S1", "quantity":"100"}}
Образованные классы:
public class Rootobject
{
public Attributes Attributes { get; set; }
}
public class Attributes
{
public string name { get; set; }
public string quantity { get; set; }
}
Пример использования (обратите внимание, что \
все еще здесь, с тем, чтобы иметь действующий синтаксис кода):
var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";
var json_serializer = new JavaScriptSerializer();
Rootobject dc = json_serializer.Deserialize<Rootobject>(json);
+1, даже не понял, что у VS был этот встроенный из коробки. - И xml, oh snap! –
@alex Я делаю следующее JavaScriptSerializer json_serializer = новый JavaScriptSerializer(); RootObject dc = json_serializer.Deserialize
Удивительно! Вещи вещей, которые вы изучаете eh ... –
Вы не поняли вопрос, но я предполагаю, что вы имеете в виду разбор JSON на объекты C#? Использование Json.NET и что-то, как это может сделать:
public class Attributes
{
[JsonProperty("name")]
public String Name { get; set; }
[JsonProperty("quantity")]
public Int32 Quantity { get; set; }
}
public class MyObject
{
[JsonProperty("Attributes")]
public Attributes Attributes { get; set; }
}
var myObj = JsonConvert.DeserializeObject<MyObject>(json);
Или вы можете пойти в более широком смысле, и пусть JSON.NET сделать это для вас:
var obj = JsonConvert.DeserializeObject<dynamic>(
"{ \"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}"
);
Console.WriteLine(obj.Attributes["name"]) // S1
Console.WriteLine(obj.Attributes["quantity"]) // 100
всякий раз, когда я пытаюсь использовать JSON.NET в своем веб-сайте (IIS), мой клиент всегда получает неверный запрос –
взглянуть на пространство имен System.Runtime.Serialization
, вы можете найти полезные классы для (де) сериализации JSON там
также вы можете прочитать этот же вопрос (поиск, прежде чем отправлять не очень больно):
How do I represent this complex json document as a C# object?
http://json2csharp.com/ – asawyer
Какую версию Visual Studio вы используете? –
Ваш Json недействителен –