我没有找到任何解除JSON String
之后的deseralize的解决方案如何在c#
中反序列化以下JSON字符串{
"1":[
{"cityId":93,"cityName":"Tapah","cityCode":"TAP"},
{"cityId":3,"cityName":"Melaka","cityCode":"MLK"},
{"cityId":6,"cityName":"Kota Bharu","cityCode":"KB"},
{"cityId":7,"cityName":"Dungun","cityCode":"DG"}
],
"2":[
{"cityId":77,"cityName":"Grik","cityCode":"GRIK"},
{"cityId":6,"cityName":"Kota Bharu","cityCode":"KB"},
{"cityId":7,"cityName":"Dungun","cityCode":"DG"},
{"cityId":98,"cityName":"Bangan Serai","cityCode":"BS"}
],
"6":[
{"cityId":3,"cityName":"Melaka","cityCode":"MLK"},
{"cityId":82,"cityName":"Teluk Intan","cityCode":"TI"},
{"cityId":7,"cityName":"Dungun","cityCode":"DG"}
]
}
我正在获取整数,一组城市详情对象
请建议我反序列化
答案 0 :(得分:1)
您可以使用JSON.Net轻松完成此任务:
JsonConvert.DeserializeObject(JSONObject);
http://james.newtonking.com/json
网站示例
string json = @"{
'Name': 'Bad Boys',
'ReleaseDate': '1995-4-7T00:00:00',
'Genres': [
'Action',
'Comedy'
]
}";
Movie m = JsonConvert.DeserializeObject<Movie>(json);
string name = m.Name;
// Bad Boys
答案 1 :(得分:0)
最好的解决方案之一Newtonsoft.Json库,包含在我所知道的每个.NET 4.5解决方案中。你可以这样做:
public class Movie
{
public string Name { get; set; }
public int Year { get; set; }
}
// read file into a string and deserialize JSON to a type
Movie movie1 = JsonConvert.DeserializeObject<Movie>(File.ReadAllText(@"c:\movie.json"));
// deserialize JSON directly from a file
using (StreamReader file = File.OpenText(@"c:\movie.json"))
{
JsonSerializer serializer = new JsonSerializer();
Movie movie2 = (Movie)serializer.Deserialize(file, typeof(Movie));
}
或者如果你想反序列化对象:
public class Account
{
public string Email { get; set; }
public bool Active { get; set; }
public DateTime CreatedDate { get; set; }
public IList<string> Roles { get; set; }
}
string json = @"{
'Email': 'james@example.com',
'Active': true,
'CreatedDate': '2013-01-20T00:00:00Z',
'Roles': [
'User',
'Admin'
]
}";
Account account = JsonConvert.DeserializeObject<Account>(json);
Console.WriteLine(account.Email);