Получите определенное значение от json [duplicate]

Возможная причина - контекст диалогового окна предупреждения. Вы можете завершить эту деятельность, чтобы ее попытка открыть в этом контексте, но которая уже закрыта. Попробуйте изменить контекст этого диалогового окна на первую операцию, потому что она не будет закончена до конца.

, например

, а не это.

AlertDialog alertDialog = new AlertDialog.Builder(this).create();

попробуйте использовать

AlertDialog alertDialog = new AlertDialog.Builder(FirstActivity.getInstance()).create();
-1
задан pasty 19 August 2015 в 18:57
поделиться

3 ответа

Я предполагаю, что этот json хранится в строке, скажем, называется json ... поэтому попробуйте

string json = "...";
JObject obj = JsonConvert.DeserializeObject<JObject>(json);
JObject innerObj = obj["unashamedohio"] as JObject;
int lolSummorLvl = (int) innerObj["summonerLevel"];
1
ответ дан Aaron 5 September 2018 в 09:36
поделиться

Вы можете использовать ключевое слово dynamic

dynamic obj = JsonConvert.DeserializeObject(json);
Console.WriteLine(obj.unashamedohio.summonerLevel);
2
ответ дан Eser 5 September 2018 в 09:36
поделиться

У вас есть пара возможностей (как уже было показано в других ответах). Другой возможностью было бы использовать свойства JObject и JProperty, предоставленные Json.Net, для того, чтобы непосредственно получить значение, подобное этому:

var jsonObject = (JObject)JsonConvert.DeserializeObject(json);
var unashamedohio = (JObject)(jsonObject.Property("unashamedohio").Value);
var summonerLevel = unashamedohio.Property("summonerLevel");
Console.WriteLine(summonerLevel.Value);

Еще одна возможность заключалась бы в создании типизированного модель структуры JSON:

public class AnonymousClass
{
    public UnashamedOhio unashamedohio { get; set; }    
}

public class UnashamedOhio
{
    public int summonerLevel { get; set; }
}

и использовать ее для извлечения значения:

var ao = JsonConvert.DeserializeObject<AnonymousClass>(json);
Console.WriteLine(ao.unashamedohio.summonerLevel);

Оба решения печатают одно и то же значение: 30.

IMO вы должны использовать всегда набранные модели, когда это возможно, и если вы делаете много полезной информации из структур JSON. Он обеспечивает проверку ошибок в среде IDE (в отличие от динамической), которая выплачивается во время выполнения.

0
ответ дан pasty 5 September 2018 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: