У меня есть файл JSON в этом форматеКак извлечь данные из JSON файла
{
"myserver": {
"readonly": false,
"slaveonly": false
},
"dateChanged": true,
"pid": "3875",
"data-mode": {
"version": 461329,
"mode": "delta",
"Jobs" : {
"job-mode": "full",
"1" : { id : 100, description : "descritpion 1" },
"2" : { id : 200, description : "descritpion 1" },
"3" : { id : 300, description : "descritpion 1" }
}
}
}
У меня есть класс с именем Иов
public class Job
{
public string Id {get;set;}
public string Desc {get;set;}
}
мне нужен список всех заданий, как IList из json string.
Мне нужно прочитать все значения в теге Jobs (1,2,3). Я проделал определенную работу здесь.
using (StreamReader r = new StreamReader(@"10022017.json"))
{
string json = r.ReadToEnd();
dynamic obj = JsonConvert.DeserializeObject(json);
//obj.
// var xx = ((Newtonsoft.Json.Linq.JArray)((Newtonsoft.Json.Linq.JProperty)(new System.Collections.Generic.Mscorlib_CollectionDebugView<Newtonsoft.Json.Linq.JToken>(((Newtonsoft.Json.Linq.JObject)((Newtonsoft.Json.Linq.JProperty)(new System.Collections.Generic.Mscorlib_CollectionDebugView<Newtonsoft.Json.Linq.JToken>(((Newtonsoft.Json.Linq.JObject)obj).ChildrenTokens).Items[14])).Value).ChildrenTokens).Items[6])).Value).ChildrenTokens;
var jObj = JObject.Parse(json);
var data = jObj.Descendants()
.OfType<JProperty>()
.Where(p => p.Name == "jobs");
foreach (var item in data.Descendants())
{
}
}
Не знаете, как получить значение для каждой строки и преобразовать в какой-либо класс.
Справка будет оценена по достоинству.
спасибо
Создать класс, который представляет весь ваш входной JSON, а затем использовать '' DeserializeObject метод. (Вы можете вставить JSON в качестве класса в Visual Studio). –
Вы уверены, что это ваша точная 'json string', потому что я думаю, что это неверно. Вы можете проверить его еще раз? –