objeto - Convierte cadena a json en jq
recorrer json javascript (1)
Fondo
Tengo un archivo json que contiene una cadena de json dentro de un objeto:
{
"requestType": "POST",
"response": {
"size": 78,
"text": "{/"recordID/":123, /"title/":/"Hello World/", /"content/":/"Lorem ipsum.../"}"
}
}
Necesito .response.text
el contenido de la cadena .response.text
como json usando la línea de comando json interpereter, jq .
Cuando ejecuto este comando:
jq ''.response.text | @json''
Salida: "/"{///"recordID///":123, ///"title///":///"Hello World///", ///"content///":///"Lorem ipsum...///"}/""
Obtengo una extraña cadena JSON escapada en lugar de JSON a la que puedo acceder a través de algo como esto: .response.text | @json | .recordID
.response.text | @json | .recordID
.response.text | @json | .recordID
.
Me doy cuenta de que la función @json
tomará json y generará una cadena json escapada, por lo que debe haber otra forma, pero @text
no parece hacer nada.
Pregunta
¿Hay alguna forma de convertir una cadena de json escapado a json real que puedo analizar con un comando como este: jq ''.response.text | @json | .title''
jq ''.response.text | @json | .title''
jq ''.response.text | @json | .title''
y obtener esta salida: "Hello World"
?
Usar desde fromjson
.
Analiza una cadena json a su valor json apropiado. tojson
(y @json
) van al revés y toman un valor json y lo convierten en una cadena json.
Entonces podrías hacer esto:
.response.text | fromjson.title