Как проверить строку json и схему C#
Я использую библиотеку Newtonsoft JSchema для проверки схемы ответа json. но мой чек возвращается фальшивым. Я создал класс с объектами, присутствующими в ответе API json, а затем сгенерировал объект класса в схему с помощью библиотеки JSchemaGenerator. После этого я проанализировал с помощью JArray и использовал метод IsValid, чтобы проверить, является ли схема допустимой, но возвращает false. Мой ответ-это список, но я хочу сохранить объекты моего класса как есть и просто хочу проверить, является ли id длинным, имя строковым и тип длинным. Кроме того, сохраняя метод IsJsonValid как можно более общим.
Ответ приходит в виде массива объектов.. это их способ просто проверить тип данных свойств, если вы определяете его только в схеме класса, как это сделал я.
Что я уже пробовал:
public class Schema { public long id { get; set; } public string name { get; set; } public long type { get; set; } } //json respone from the API [ { "id": 1, "name": "name1", "type": 0 }, { "id" : 2 "name" : "name2", "type" : 1 } ] //here is the method to check if JsonIsValid public static bool IsJsonValid<TSchema>(this string value) { bool res = true; var obj = JsonConvert.DeserializeObject<List<TSchema>>(value); JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(typeof(TSchema)); JArray actualJson = JArray.Parse(value); bool valid = actualJson.IsValid(schema); return valid; } //usage: string json = "[{\"id\":1,\"name\":\"name1\",\"type\":0},{\"id\":2,\"name\":\"name2\",\"type\":1}]"; bool isValid = json.IsJsonValid<Schema>();