Согласно https://jsonapi.org/format/
* Объект JSON ДОЛЖЕН находиться в корне каждого запроса и ответа JSON: API, содержащего данные. Этот объект определяет «верхний уровень» документа. Документ ДОЛЖЕН содержать хотя бы одного из следующих членов высшего уровня:
data : «первичные данные» документа
ошибки : anмассив объектов ошибок
мета : мета-объект, который содержит нестандартную мета-информацию. *
Таким образом, действительный документ JSON, рассматривающий эти мета, данные и элементы ошибокдолжен выглядеть (просто пример):
{
"meta": {
"uuid": "e77d8a4b-dc00-445c-8cf6-118704c5525b",
"key": "key123",
"api_version": "1.0"
},
"data": {
"type": "agent",
"attributes": {
"uuid": "a4470f04-c6eb-45b2-9487-d1cecc869b5f",
"name": "hostname",
"operating_system": "Microsoft Windows 10 Pro (Microsoft Windows NT 6.2.9200.0)",
}
}
}
Использование C # и Newtonsoft.Json.SerializeObject для сериализации этого объекта:
public class Device : Meta
{
public long Id { get; set; }
public string Name { get; set; }
}
public class Meta
{
public string key { get; set; }
public string guid { get; set; }
public string api_version { get; set; }
}
затем:
var device = new Device { Name = Environment.MachineName, key = "key123", guid = "41afe993-2629-40a2-98bb-4cbd4e5c5bb0",api_version = "1.0"};
var deviceJson = JsonConvert.SerializeObject(device, Formatting.Indented);
я получаю документ json:
{
"id": 0,
"name": "SOLMOB007",
"Software": [],
"key": "key123",
"guid": "41afe993-2629-40a2-98bb-4cbd4e5c5bb0",
"api_version": "1.0"
}
Можно ли мне объяснить, если мне нужно реализовать (данные, ошибки, обработка метаэлементов) в моих модельных классах или я могу поручить сериализатору добавить их при вызовесериализующий объект / конструктор?
спасибо большое!
Кристиан