Как сделать цикл через объект JSON (все, что я пробовал до сих пор, потерпело неудачу).
Привет,
Я чувствую, что это невероятно простая проблема для решения, но я просто не могу заставить свой код работать!
Все, что я пытаюсь сделать, - это выполнить цикл через объект JSON и опубликовать соответствующие элементы объекта на моей веб-странице MVC.
Вот мой код ниже (я сохранил его очень простым только для того, чтобы я мог получить основы правильно в первый раз)
Тем не менее, я продолжаю получать следующее сообщение об ошибке: Newtonsoft.В формате JSON.В LINQ.JProperty' не содержит определения для 'alertName".
Я знаю, что в настоящее время не использую свойства модели, однако в других попытках, которые я пробовал, я был.
Любая помощь будет очень признательна.
Что я уже пробовал:
Код Контроллера:
var jsonClient = new WebClient(); jsonClient.Credentials = new NetworkCredential("XXXX", "XXXX"); jsonClient.Headers.Set("Content-Type", "application/json"); jsonClient.Headers.Set("Accept", "application/json"); var alertsSettings = jsonClient.DownloadString("http://XXXXX:XXXX/api/alerts/settings"); dynamic alertObj = JsonConvert.DeserializeObject(alertsSettings); foreach (var item in alertObj) { Viewbag.Test123 = item.alertName; }
типовой кодекс:
public class AlertObject { public string alertName { get; set; } public string value { get; set; } public string alertMnemonic { get; set; } public string enabled { get; set; } public string unit { get; set; } public string warning { get; set; } public string sharedParam { get; set; } public string type { get; set; } public string id { get; set; } }
Это и есть JSON:
{ "data": [ { "id": 268500993, "alertName": "High CPU Usage", "alertMnemonic": "HIGH_CPU_USAGE", "enabled": true, "parameters": { "alarm": { "unit": "MINUTES", "value": 15 }, "warning": { "unit": "MINUTES", "value": 5 }, "sharedParam": { "unit": "CPU", "value": 70, "name": "CPU Usage" }, "type": "TERNARY" } }, { "id": 134479876, "alertName": "Custom Module Changed", "alertMnemonic": "CUSTOM_MODULE_CHANGED", "enabled": false, "parameters": null }, { "id": 268500992, "alertName": "Low JVM Memory", "alertMnemonic": "LOW_AVAILABLE_JVM_MEMORY", "enabled": true, "parameters": { "alarm": { "unit": "MEMORY", "value": 64 }, "warning": { "unit": "MEMORY", "value": 128 }, "sharedParam": { "unit": "MINUTES", "value": 5, "name": "Time" }, "type": "TERNARY" } } ], "error": null }