У меня есть json resposne из сети (restapi), в котором данные анализируются, преобразуются в json и отправляются как resposne с сервера.Мне нужно получить доступ и получить эти данные и данные и показать в виде сетки Winform.У меня проблема с доступом и десериализацией этого элемента из ответа json.
Вот пример ответа json:
{
"api_version": "1.07",
"app_option": "KOM_KOMITENTI",
"checksum": "FE1A57ACCBD1EBF981B80344B88AE80B",
"data": "{\"databaseattachment\": \"{\\\"count\\\": 1,\\\"_class_name\\\": \\\"Tapidatabaseattachment\\\",\\\"items\\\": [{\\\"fields\\\": {\\\"count\\\": 10,\\\"_class_name\\\": \\\"Tapitablefields\\\",\\\"items\\\": [{\\\"name\\\": \\\"sif_firme\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"naziv\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"jmbg\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"adresa\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"mesto\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"tip_firme\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"racun\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"mat_broj\\\",\\\"type\\\": \\\"C\\\"},{\\\"name\\\": \\\"clanova\\\",\\\"type\\\": \\\"N\\\"},{\\\"name\\\": \\\"saldo\\\",\\\"type\\\": \\\"N\\\"}]},\\\"rows\\\": {\\\"count\\\": 9600,\\\"_class_name\\\": \\\"Tapitablerows\\\",\\\"items\\\": [{\\\"sif_firme\\\": \\\"900010\\\",\\\"naziv\\\": \\\"Janošević Jasminka\\\",\\\"adresa\\\": \\\"Milinka Kušića 1\\\",\\\"mesto\\\": \\\"Ivanjica\\\",\\\"tip_firme\\\": \\\"01\\\",},{\\\"sif_firme\\\": \\\"900020\\\",\\\"naziv\\\": \\\"Obrenović Dušan\\\",\\\"adresa\\\": \\\"Milinka Kušića 1\\\",\\\"mesto\\\": \\\"Ivanjica\\\",\\\"tip_firme\\\": \\\"01\\\",},{\\\"sif_firme\\\": \\\"900030\\\",\\\"naziv\\\": \\\"Ristić Danijela\\\",\\\"adresa\\\": \\\"Milinka Kušića 3\\\",\\\"mesto\\\": \\\"Ivanjica\\\",\\\"tip_firme\\\": \\\"01\\\",\\\"clanova\\\": 2,\\\"saldo\\\": 31932.7},{\\\"sif_firme\\\": \\\"900040\\\",\\\"naziv\\\": \\\"Ristić Ratomir\\\",\\\"adresa\\\": \\\"Milinka Kušića 3\\\",\\\"mesto\\\": \\\"Ivanjica\\\",\\\"tip_firme\\\": \\\"01\\\",},\\\"table_name\\\": \\\"listakupaca\\\"}]}\\r\\n\",\"database_format\": \"PLAIN_OBJ\",\"error_state\": \"ok\",\"exec_date_time\": \"2018-09-11T11:49:58+02:00\",\"paging_page_len\": 9600,\"paging_rec_count\": 9600,\"paging_selected_page\": 1,\"status\": \"Ok\",\"_class_name\": \"Tapikom_komitentiresult\"}",
"disk": "d:\\DISK\\P",
"encoding": "PLAIN",
"error_state": "ok",
"instance_id": "743edba3f9f123b",
"job": "kom",
"poslovna_godina": 2018,
"pozicija": "01",
"referent": "0002",
"req_id": "DOTEST_4S60QRPEI",
"result_error_state": "ok",
"session_id": "53744862e8cc84e7",
"sif_firme": "0000",
"_class_name": "Tapiresponseenvelope"
}
Мне нужен доступ к элементу «data» и «databaseattachment»в частности, в котором datatable определяется данными, полученными с сервера.
Поверьте мне, я исследовал проблему и тему здесь на stackoverflow и по сети, попробовал пару примеров с преобразованием напрямую json в datatable с помощью newtonsoft.json.Прочитайте много примеров о десериализации JSON, создании необходимых классов, которые будут представлять этот элемент - объект, но все же у меня есть проблемы, потому что кажется, что в этом ответе json есть дополнительные параметры, которые «объясняют» датируемые элементы, столбцы и строки с их конкретными свойствамии типы полей.
Я попытался разобрать объект json:
string mResponseString = Encoding.Default.GetString(mResponse);
JObject jsonResponse = JObject.Parse(mResponseString);
Я вижу элементы в нем:
https://i.imgur.com/OHOQifl.png
ЭтоКажется, мне все еще нужно получить доступ к еще одному уровню, чтобы получить данные из элемента databaseattachment или проанализировать дополнительно:
https://i.imgur.com/zB22P6U.png
Мне кажется, что это какой-то шаблон данных, которыйпроанализировал в json и отправил с данными в ответ, который кажется стандартным способом преобразования данных, но не смог найти пример, объясняющий этот конкретный случай.
Как получить доступ к этому элементу - объект в json и parseэто правильно, чтобы иметь возможность позже преобразовать в datatable и передать в качестве источника данных для gridview?