DataTable LoadJsonFile(string Algorithm_)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
List<SaveEcoBot_Object> saveEcoBot_Objects = new List<SaveEcoBot_Object>();
string jsonStr = File.ReadAllText(openFileDialog.FileName);
StreamReader file = File.OpenText(openFileDialog.FileName);
JsonTextReader jsonTextReader = new JsonTextReader(file);
var token = JToken.Parse(jsonStr);
if(token is JArray)
{
JArray jsonArray = JToken.ReadFrom(jsonTextReader) as JArray;
foreach (JObject obj in jsonArray)
{
SaveEcoBot_Object saveEcoBot_Object = new SaveEcoBot_Object();
saveEcoBot_Object.id = obj["id"].Value<string>();
saveEcoBot_Object.cityName = obj["cityName"].Value<string>();
saveEcoBot_Object.stationName = obj["stationName"].Value<string>();
saveEcoBot_Object.localName = obj["localName"].Value<string>();
saveEcoBot_Object.timezone = obj["timezone"].Value<string>();
saveEcoBot_Object.latitude = obj["latitude"].Value<float>();
saveEcoBot_Object.longitude = obj["longitude"].Value<float>();
foreach (JObject pollutantobj in obj["pollutants"])
{
SaveEcoBotObject_Pollutant saveEcoBotObject_Pollutant = new SaveEcoBotObject_Pollutant();
saveEcoBotObject_Pollutant.pol = pollutantobj["pol"].Value<string>();
saveEcoBotObject_Pollutant.unit = pollutantobj["unit"].Value<string>();
saveEcoBotObject_Pollutant.time = pollutantobj["time"].Value<string>();
saveEcoBotObject_Pollutant.value = pollutantobj["value"].Value<string>();
saveEcoBotObject_Pollutant.averaging = pollutantobj["averaging"].Value<string>();
saveEcoBot_Object.pollutants.Add(saveEcoBotObject_Pollutant);
}
saveEcoBot_Objects.Add(saveEcoBot_Object);
}
}
return null;
}
else
{
return null;
}
}

JsonSerializer.Deserialize<T>(jsonString)? – VladD May 25 '21 at 17:51dynamic jsonResponse = JsonConvert.Deserialize(json);– iikuzmychov May 25 '21 at 19:20{ "Message" : "Привет SO!" }или[{ "Age" : 23 }, { "Age" : 50 }]они вам подходят? Тут есть нужная для вас информация? Если есть, то вы явно хотите сделать некий "визуализатор" для JSON, который отобразит все, что угодно. Тогда встает другой вопрос: а зачем вам "десиализация в объект"? Если не подходит, то значит у вас нету "уникальности", ибо есть некое связующее звено, о котором вы нам не говорите. И тут уже зависит от того, что это за "звено". – EvgeniyZ May 25 '21 at 20:09не зная структуры строки- это я расцениваю как "нам совершенно неизвестен JSON, неизвестно что там". То есть,не зная структуры строки==Нам неизвестен T. Вот я и хочу узнать у автора, как он дальше хочет взаимодействовать с данными "не зная их". Может там статичное поле, а остальное все динамично, может объект целиком меняется и надо искать нужное свойство, может вовсе что-то другое. – EvgeniyZ May 25 '21 at 21:16динамически создавать объектидет речь? Что у вас не получается? – EvgeniyZ May 25 '21 at 23:33DataGridView, это UI, для него надо сначала подготовить данные. А подготовленные данные, это класс. Почему вы вдруг решили от класса отказаться? Не нужны все свойства? Вас не заставляют их все писать, напишите только нужные вам. Не, ну можете работать сJObjectили аналогом, тогда будете писать вручнуюvar result = data["НекоеСвойство"]["СвойствоВнутриПредыдущего"];, но сразу учтите, что если изменится вдруг JSON строка на сервере, вам везде текстНекоеСвойствонадо будет менять, а так, вам надо лишь подправить класс будет. – EvgeniyZ May 26 '21 at 19:09