Ответ 1
сначала создайте другой класс:
public class SalesTransactions
{
public List<clsSalesTran> transactions {get;set;}
public int count{get;set;}
}
Затем используйте
JsonConvert.DeserializeObject<SalesTransactions>(inputString)
Я работаю со следующей строкой JSON
{
"transactions":
[
{
"paymentcharge":"0.0",
"amount":352,
"id":13418,
"shippingcharge":35,
"shippingtype":2,
"status":2,
"paymenttype":1,
"date":"2012-10-06 16:15:28.0"
},
{
"paymentcharge":"0.0",
"amount":42455,
"id":16305,
"shippingcharge":0,
"shippingtype":2,
"status":2,
"paymenttype":2,
"date":"2012-11-30 09:29:29.0"
},
{
"paymentcharge":"1.0",
"amount":42456,
"id":16305,
"shippingcharge":0,
"shippingtype":2,
"status":2,
"paymenttype":2,
"date":"2012-11-30 09:29:29.0"
}
],
"count":3
}
У меня есть структура класса, как показано ниже, для синтаксического анализа и восприятия json-данных
class clsSalesTran
{
public double paymentcharge { get; set; }
public double amount { get; set; }
public long id { get; set; }
public int shippingcharge { get; set; }
public int shippingtype { get; set; }
public int status { get; set; }
public int paymenttype { get; set; }
public DateTime date { get; set; }
}
Как я могу десериализовать приведенную выше строку JSON в List?
Я использую Newtonsoft.Json для десериализации.
сначала создайте другой класс:
public class SalesTransactions
{
public List<clsSalesTran> transactions {get;set;}
public int count{get;set;}
}
Затем используйте
JsonConvert.DeserializeObject<SalesTransactions>(inputString)
Создайте класс, как показано ниже. Создав список классов 'clsSalesTran' и переменную для 'Count'
Примечание. JsonProperty является обязательным для вашей строки Json
public class SalesTransactions
{
[JsonProperty("transactions")]
public List<clsSalesTran> transactions {get;set;}
public int count{get;set;}
}
Затем вы можете использовать этот класс, как показано ниже, для десериализации
SalesTransactions st = JsonConvert.DeserializeObject<SalesTransactions>(inputString)
Используйте объект Deserialized, как показано ниже
double paymentcharge = st.transactions[0].paymentcharge;
class WeapsCollection
{
public Dictionary<string, WeaponDetails> Weapons { get; set; }
}
class WeaponList
{
public WeaponDetails AEK { get; set; }
public WeaponDetails XM8 { get; set; }
}
class WeaponDetails
{
public string Name { get; set; }
public int Kills { get; set; }
public int Shots_Fired { get; set; }
public int Shots_Hit { get; set; }
}
class Program
{
static void Main(string[] args)
{
string json = @"
{
'weapons':
{
'aek':
{
'name':'AEK-971 Vintovka',
'kills':47,
'shots_fired':5406,
'shots_hit':858
},
'xm8':
{
'name':'XM8 Prototype',
'kills':133,
'shots_fired':10170,
'shots_hit':1790
},
}
}";
WeapsCollection weps = JsonConvert.DeserializeObject<WeapsCollection>(json);
Console.WriteLine(weps.Weapons.First().Value.Shots_Fired);
Console.ReadLine();
}
}
Ответьте в случае возникновения каких-либо проблем.
Чтобы десериализовать строку в список объектов типа clsSalesTran
:
var myList = JsonConvert.DeserializeObject<List<clsSalesTran>>(inputString);