Проверка Newtonsoft.Json: применение определенного набора строковых значений для свойства.C#

Место общения программистов C#
Anonymous
Проверка Newtonsoft.Json: применение определенного набора строковых значений для свойства.

Сообщение Anonymous »

У меня есть проект API на .NET Core 3.1, настроенный для использования Newtonsoft.Json:

Код: Выделить всё

Startup.cs

Код: Выделить всё

public void ConfigureServices(IServiceCollection services)
{
// [...]

services.AddControllers().AddNewtonsoftJson();

// [...]
}

Код: Выделить всё

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace MyNS
{
[JsonObject]
public class MyData
{
[JsonProperty("query", Required=Required.Always)]
public Query Query { get; set; }

[JsonProperty("limit")]
public int Limit { get; set; }
}

public class Query
{
[JsonProperty("props", Required=Required.Always)]
public List Props { get; set; }
}

public class Prop
{
// Allowed values should be only ("key1" and "key2"). Other strings or types should fail validation
[JsonProperty("key", Required = Required.Always)]
public string Key { get; set; }

[JsonProperty("value", Required = Required.Always)]
public string Value { get; set; }
}
}

Код: Выделить всё

MyController.cs

Код: Выделить всё

// [...]
[Route("test")]
[HttpPost]
public async Task Test(MyData data)
{
return Json(data);
}
// [...]
Для определенного свойства (Prop.Key в этом примере) мне нужно, чтобы проверка завершилась неудачей, если значение отличается от определенных заданных значений (например, «key1» и «key2»). Можно ли настроить такую ​​проверку в Newtonsoft.Json?


Подробнее здесь: https://stackoverflow.com/questions/647 ... r-a-proper

Вернуться в «C#»