Я пытаюсь создать вложенный объект JSON для конечной точки API загрузки. У меня возникли проблемы с формированием кода для вложенного объекта. Когда я вызываю конечную точку, чтобы опубликовать данные на их сайте, я получаю ошибку 400 Bad Request. Я использую Newtonsoft.Json. Когда я удаляю DisciplineData из строки, POST проходит успешно, но требуются данные в классе DisciplineData.
public class UploadClassParameters
{
public int CompYear { get; set; }
public int CompID { get; set; }
public string ClassNumber { get; set; }
public List Results { get; set; }
}
public class Result
{
public string Placing { get; set; }
public int HorseID { get; set; }
public Dressage DisciplineData { get; set; }
}
public class Dressage // THIS IS THE NESTED OBJECT
{
public double TotalScore { get; set; }
public double TotalPercent { get; set; }
public string DressageLevel { get; set; }
}
Используя показанный здесь код, приведенные выше классы создают это (что не удается при вызове конечной точки):
{
"CompYear": 2025,
"CompID": 1214,
"ClassNumber": "53",
"Results": [
{
"Placing": "1",
"HorseID": 5536384,
"DisciplineData": {
"TotalScore": 169.0,
"TotalPercent": 67.6,
"DressageLevel": "FIRST LEVEL, TEST 2",
}
}
]
}
Чтобы увидеть, как формируются их данные, я вызвал их конечную точку GetClass, и это было возвращено:
{
"CompYear": 2025,
"CompID": 1214,
"ClassNumber": "53",
"Results": [
{
"Placing": "1",
"ID": 5536384,
"DisciplineData":{\"TotalScore\":169.0,\"TotalPercentage\":67.6,\"DressageLevel\":\"FIRST LEVEL, TEST 2\";}]}
}
DisciplineData — это вложенный объект. Я не знаком с обратной косой чертой. И провели небольшое исследование, чтобы убедиться, что он «сериализуется».
Это текущий код:
var elements = new UploadClassParameters
{
CompYear = 2025,
CompID = 1234,
ClassNumber = "12",
Results = new List
{
new Result
{
Placing = "1",
HorseID = 4567,
DisciplineData = new Dressage
{
TotalScore = 169.0,
TotalPercent = 67.600,
DressageLevel = "FIRST LEVEL, TEST 2",
}
}
},
};
string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(elements);
string signature = CreateSignature(clientID, clientSecret);
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://api.XXXXXX.org"); // API endpoint
// client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", signature);
var content = new StringContent(jsonPayload, System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("/api/results/uploadclass", content);
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... nsoft-json
Кодирование вложенного объекта JSON с использованием Newtonsoft.Json ⇐ C#
Место общения программистов C#
1763932387
Anonymous
Я пытаюсь создать вложенный объект JSON для конечной точки API загрузки. У меня возникли проблемы с формированием кода для вложенного объекта. Когда я вызываю конечную точку, чтобы опубликовать данные на их сайте, я получаю ошибку 400 Bad Request. Я использую Newtonsoft.Json. Когда я удаляю DisciplineData из строки, POST проходит успешно, но требуются данные в классе DisciplineData.
public class UploadClassParameters
{
public int CompYear { get; set; }
public int CompID { get; set; }
public string ClassNumber { get; set; }
public List Results { get; set; }
}
public class Result
{
public string Placing { get; set; }
public int HorseID { get; set; }
public Dressage DisciplineData { get; set; }
}
public class Dressage // THIS IS THE NESTED OBJECT
{
public double TotalScore { get; set; }
public double TotalPercent { get; set; }
public string DressageLevel { get; set; }
}
Используя показанный здесь код, приведенные выше классы создают это (что не удается при вызове конечной точки):
{
"CompYear": 2025,
"CompID": 1214,
"ClassNumber": "53",
"Results": [
{
"Placing": "1",
"HorseID": 5536384,
"DisciplineData": {
"TotalScore": 169.0,
"TotalPercent": 67.6,
"DressageLevel": "FIRST LEVEL, TEST 2",
}
}
]
}
Чтобы увидеть, как формируются их данные, я вызвал их конечную точку GetClass, и это было возвращено:
{
"CompYear": 2025,
"CompID": 1214,
"ClassNumber": "53",
"Results": [
{
"Placing": "1",
"ID": 5536384,
"DisciplineData":{\"TotalScore\":169.0,\"TotalPercentage\":67.6,\"DressageLevel\":\"FIRST LEVEL, TEST 2\";}]}
}
DisciplineData — это вложенный объект. Я не знаком с обратной косой чертой. И провели небольшое исследование, чтобы убедиться, что он «сериализуется».
Это текущий код:
var elements = new UploadClassParameters
{
CompYear = 2025,
CompID = 1234,
ClassNumber = "12",
Results = new List
{
new Result
{
Placing = "1",
HorseID = 4567,
DisciplineData = new Dressage
{
TotalScore = 169.0,
TotalPercent = 67.600,
DressageLevel = "FIRST LEVEL, TEST 2",
}
}
},
};
string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(elements);
string signature = CreateSignature(clientID, clientSecret);
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://api.XXXXXX.org"); // API endpoint
// client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", signature);
var content = new StringContent(jsonPayload, System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("/api/results/uploadclass", content);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79828117/coding-a-nested-json-object-using-newtonsoft-json[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия