Запрос json для заполнения справочника
Нужно заполнить справочник запросом json Вот пример с оф сайта
{
"Items":[{
"Data":{
"Items":[{
"Data":{
"Items":null,
"Value":"Строковое содержимое"
},
"DataArray":[{
"Items":null,
"Value":"Строковое содержимое"
}],
"Name":"Строковое содержимое",
"Value":"Строковое содержимое"
}],
"Value":"Строковое содержимое"
},
"DataArray":[{
"Items":[{
"Data":{
"Items":null,
"Value":"Строковое содержимое"
},
"DataArray":[{
"Items":null,
"Value":"Строковое содержимое"
}],
"Name":"Строковое содержимое",
"Value":"Строковое содержимое"
}],
"Value":"Строковое содержимое"
}],
"Name":"Строковое содержимое",
"Value":"Строковое содержимое"
}],
"Value":"Строковое содержимое"
}
Ну и собственно мои попытки
"
""Items"":
[
{
""Data"":
{
""Items"":
[
{
""Data"":
{
""Items"":null,
""Value"":Строковое содержимое
},
""DataArray"":
[
{
""Items"":null,
""Value"":[]
}
],
""Name"":IdTelegram,
""Value"":"+chatid+ @"
}
],
{
],
""Value"":Строковое содержимое
},
""DataArray"":
[
{
""Items"":
[
{
""Data"":
{
""Items"":null,
""Value"":Строковое содержимое
},
""DataArray"":
[
{
""Items"":null,
""Value"":[]
}
],
""Name"":IdUserElma,
""Value"":" + IdUser+@"
}
],
""Value"":Строковое содержимое
}
],
""Name"":AuthToken,
""Value"":Строковое содержимое
}
],
""Value"":Строковое содержимое";
Классы:
public class Data
{
public List<Item11> Items { get; set; }
public string Value { get; set; }
}
public class DataArray
{
public object Items { get; set; }
public string Value { get; set; }
}
public class Item11
{
public Data Data { get; set; }
public List<DataArray> DataArray { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
public class Root11
{
public List<Item11> Items { get; set; }
public string Value { get; set; }
}
Ответы (1 шт):
Автор решения: Frehzy
→ Ссылка
public class Root
{
[JsonPropertyName("Items")]
public List<Item> Items { get; set; }
[JsonPropertyName("Value")]
public string Value { get; set; }
}
public class Item
{
[JsonPropertyName("Data")]
public Data Data { get; set; }
[JsonPropertyName("DataArray")]
public List<DataArray> DataArray { get; set; }
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonPropertyName("Value")]
public string Value { get; set; }
}
public class DataArray
{
[JsonPropertyName("Items")]
public Item Items { get; set; }
[JsonPropertyName("Value")]
public string Value { get; set; }
}
public class Data
{
[JsonPropertyName("Items")]
public List<Item> Items { get; set; }
[JsonPropertyName("Value")]
public string Value { get; set; }
}
Для сериализации/десереализации используйте System.Text.Json.JsonSerializer
Пример:
var json = "";//тут наш длинный json
var instance = JsonSerializer.Deserialize<Root>(json);
Изменяете как-либо instance и обратно сериализуете. Затем с помощью System.Net.Http.HttpClient отправляете запрос
using var client = new HttpClient();
var json = JsonSerializer.Serialize(instance);
var content = new StringContent(json , Encoding.UTF8, "application/json");
var result = await client.PostAsync(url, content); //отправляем json
string result = await response.Content.ReadAsStringAsync(); //если сервер как-нибудь должен отвечать, то так можно "извлечь" этот ответ



