Я работаю над приложением Xamarin и использую Newtonsoft для Json.
Но у меня проблемы с обработкой некоторых данных, которые я получаю.
{
"ok": true,
"payment-methods": [
{
"id": "39sahf92ka9s02",
"type": "ideal",
"options": {
"issuers": {
99: "Test Issuer"
}
}
}
],
}
Я не знаю, как добраться до издателя теста, поскольку значение ключа может быть любым целым числом.
Словарь имеет большой смысл в использовании, но затем я получаю следующее исключение: «System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. Json»
У меня есть следующие модели:
[JsonObject(MemberSerialization.OptIn)]
public class PaymentOptions
{
[JsonProperty("ok")]
public Boolean OK { get; set; }
[JsonProperty("payment-methods")]
public List<PaymentMethods> PaymentMethods { get; set; }
}
public class PaymentMethods
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("options")]
public Options Options { get; set; }
}
public class Options
{
[JsonProperty("issuers")]
public IDictionary<int, string> Issuers { get; set; }
}
Я десериализую Json с помощью следующего:
var deserializedGetPaymentOptions = JsonConvert.DeserializeObject<Models.PaymentMethods>(await responseGetPaymentOptions.Content.ReadAsStringAsync());
И после этого я пытаюсь прочитать его, используя цикл foreach:
foreach (KeyValuePair<int, string> issuerFromDict in deserializedGetPaymentOptions.Options.Issuers)