Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
Combinando múltiples pruebas en la validación de contenido JSON con jq

Tengo el siguiente objeto JSON

 {"color": "red", "shapes": [ "square", "triangle" ]}

Me gustaría validar el objeto JSON usando jq usando las siguientes condiciones:

  • el color tiene valor "rojo"
  • las formas no contienen el valor "redondo"

El resultado devuelto debe ser verdadero o falso .

Tengo 2 comandos jq que validan ambas condiciones, pero no estoy seguro de cómo combinar esto en 1 expresión:

 json='{"color": "red", "shapes": [ "square", "triangle" ]}' echo "$json" | jq '.["color"] | test("red")' echo "$json" | jq 'any(.shapes[]; contains("round"))|not'

Cualquier sugerencia o ayuda sería apreciada.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Simplemente puede verificar que ambas pruebas devuelvan verdadero con all :

 echo '{"color": "red", "shapes": [ "square", "triangle" ]}' | jq '[(.["color"] | test("red")), (any(.shapes[]; contains("round"))|not) ] | all'

Cree una matriz que contenga los resultados de cada prueba, luego canalice esa matriz a all .

over 4 years ago · Santiago Trujillo Report

0

Una forma correcta de probar una colección de condiciones es usando and .

En tu caso, una prueba correcta sería:

 (.color == "red") and (.shapes|index("round") == null)

Ejemplo (mecanografiado):

 jq '(.color == "red") and (.shapes|index("round") == null)' {"color": "red", "shapes": [ "square", "triangle" ]} true

En jq, not es un filtro sintácticamente ordinario, por lo que podría escribir la segunda condición como: (.shapes | index("round") | not) .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!