#json #net #синтаксический_анализ
Имеется следующий Json:
{
"status":"ok",
"count":1,
"data":{
**"1"**:{
"members_count":100,
"description":"Закрытый клан, в состав которого входят _лишь_ разработчики
игры "World of Tanks". Заявки, посланные командиру клана через форум, _НЕ РАССМАТРИВАЮТСЯ_ . ",
"description_html":"Закрытый клан, в состав которого входят _лишь_ разработчики
игры "World of Tanks".
Заявки, посланные командиру клана через форум,
_НЕ РАССМАТРИВАЮТСЯ_ .
",
"created_at":1293024672,
"request_availability":false,
"updated_at":1381187704,
"private":null,
"abbreviation":"WG",
"emblems":{
"large":"http://clans.worldoftanks.ru/media/clans/emblems/clans_1/1/emblem_64x64.png",
"small":"http://clans.worldoftanks.ru/media/clans/emblems/clans_1/1/emblem_24x24.png",
"bw_tank":"http://clans.worldoftanks.ru/media/clans/emblems/clans_1/1/emblem_64x64_tank.png",
"medium":"http://clans.worldoftanks.ru/media/clans/emblems/clans_1/1/emblem_32x32.png"
},
"clan_id":1,
"members":{
**"196632"**:{
"account_id":196632,
"created_at":1293126248,
"updated_at":0,
"account_name":"Wrobel",
"role":"private",
"role_i18n":{
"ru":"солдат",
"fr":"Soldat",
"en":"Soldier",
"th":"ทหาร",
"vi":"Quân nhân",
"de":"Schütze",
"tr":"Asker",
"it":"солдат",
"hu":"солдат",
"zh-cn":"战士",
"pl":"żołnierz",
"ms":"солдат",
"cs":"Voják",
"es":"Soldado"
}
},
"18458":{
"account_id":18458,
"created_at":1360836543,
"updated_at":0,
"account_name":"alienraven",
"role":"diplomat",
"role_i18n":{
"ru":"дипломат",
"fr":"Diplomate",
"en":"Diplomat",
"th":"ทูต",
"vi":"ngoại giao",
"de":"Diplomat",
"tr":"Diplomat",
"it":"дипломат",
"hu":"дипломат",
"zh-cn":"外交官",
"pl":"dyplomata",
"ms":"дипломат",
"cs":"Diplomat",
"es":"Diplomático"
}
},
Возникла проблема с описанием класса для newtown json т.к. имеются ключи("1","196632"),
которые имеют нестатические названия ("1","196632"). Их названия меняются в зависимости
от того к какому id я обращаюсь, через API.
[JsonObject(MemberSerialization.OptIn)]
public class Clan
{
[JsonProperty("status")]
public string Status { get; set; }
[JsonProperty("count")]
public int Count { get; set; }
public Data Data { get; set; }
}
[JsonObject(MemberSerialization.OptIn)]
public class Data
{
//[JsonProperty("что писать вместо 1")]
//public что писать вместо 1 { get; set; }
}
Ответы
Ответ 1
Такие json-ы можно десериализовать в Dictionary. Вот сильно упрощенный пример: public class TestClass { public const string Json = @"{""Name"":""Foo"",Bs:{""100"":{""Value"":1,""Flag"":false},""500"":{""Value"":2,""Flag"":true}}}"; [Test] public void Test() { var a = JsonConvert.DeserializeObject(Json); } } public class A { public string Name { get; set; } public DictionaryBs { get; set; } } public class B { public int Value { get; set; } public bool Flag { get; set; } }
Комментариев нет:
Отправить комментарий