{ "status": 200, "id": "123e4567-e89b-12d3-a456-426655440000", "shop": { "c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd": { "123e4567-e89b-12d3-a456-426655443210": { "quantity": { "value": 10 } }, "123e4567-e89b-12d3-a456-426655443211": { "quantity": { "value": 20 } } } } }Esta es mi respuesta json. Quiero validar los campos "c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd", "123e4567-e89b-12d3-a456-426655443210" y "123e4567-e89b-12d3-a456-426655443211", que se generan de forma única cada vez el punto final
Para validar en el esquema JSON que una cadena se ajusta a un patrón de expresión regular, use { "type": "string", "pattern": "\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b" }
El patrón concreto está adaptado de la pregunta Búsqueda de UUID en texto con expresiones regulares ; consulte allí para obtener más detalles.
Para validar el UUID en particular, puede usar el format en el esquema JSON, que brinda soporte integrado para la sintaxis del UUID: { "type": "string", "format": "uuid" }
Consulte https://json-schema.org/understanding-json-schema/reference/string.html
Necesitas "propiedades de patrón":
{ "$schema":"http://json-schema.org/draft-07/schema#", "type":"object", "properties": { "shop":{ "type":"object", "additionalProperties":false, "patternProperties":{ "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}": { "type":"object", "patternProperties" :{ "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}":{ "type":"object", "properties":{ "quantity":{ "type":"object", "properties":{ "value":{ "type":"integer" } } } } } } } } } } }Sobre la base de la respuesta de @ pxcv7r:
Para validar el UUID en particular, puede usar el formato en el esquema JSON, que brinda soporte integrado para la sintaxis del UUID: { "tipo": "cadena", "formato": "uuid" }
Consulte https://json-schema.org/understanding-json-schema/reference/string.html
Además, puede usar una combinación de "nombres de "propertyNames" y "unevaluatedProperties" para evitar la necesidad de expresiones regulares:
{ "$schema": "https://json-schema.org/draft/2019-09/schema", "type": "object", "properties": { "status": { "type": "integer" }, "id": { "type": "string", "format": "uuid" }, "shop": { "type": "object", "minProperties": 1, "maxProperties": 1, "propertyNames": { "format": "uuid" }, "unevaluatedProperties": { "type":"object", "minProperties": 1, "propertyNames": { "format": "uuid" }, "unevaluatedProperties": { "title": "single variant of a shop", "type": "object", "properties": { "quantity": { "type": "object", "properties": { "value": { "type": "integer" } } } } } } } } }