我有一个像这样的json文件:
{"offset":0,"results":[{"actividades/_text":["Ciencias Naturales Logro y Autoevaluación","Ciencias Naturales Seres Vivos - Objetos Inertes","Educación Artística Contenidos","Educación Religiosa Dibujo","Educación Religiosa Estructura 1 Periodo","Educación Religiosa Comunicado","Educación Religiosa Respuesta Eucaristía","Educación Religiosa Eucaristía","Expresión Corporal Estructura General","Expresión Corporal Vestuario de Ensayo","Ingles Recomendaciones Generales 2016","Ingles Temas Logros Indicadores Todos los Periodos","Ingles Rules and oral expressions to be used in the classroom","Lengua Castellana Estructura Curricular","Matemáticas Temas Logros 1 Periodo","Matemáticas Taller #1","Música Estructura 1 Periodo","Tecnología e Informática Support guide first term"],"actividades/_source":["/ArchivosCargados/2016/CUADRO-PRIMER-BIMESTRE-2016-PRIMERO.pdf","/ArchivosCargados/2016/Hojita-Seres-Vivos.pdf","/ArchivosCargados/2016/2016-CONTENIDOS-ARTES-PLASTICAS-PRIMARIA-J-T-12345.pdf","/ArchivosCargados/2016/PRIMERO-RELILGION.pdf","/ArchivosCargados/2016/Estructura-RELGION.pdf","/ArchivosCargados/2016/PRIMERO-RELIGION.pdf","/ArchivosCargados/2016/RESPUESTAS-EUCARISTIA.pdf","/ArchivosCargados/2016/respuestas-misa.pdf","/ArchivosCargados/2016/Estructura-general-grado-primero-2016.pdf","/ArchivosCargados/2016/VESTUARIO-CLASE-EXPRESION-CORPORAL-2016.pdf","/ArchivosCargados/2016/RECOMENDACIONES-GENERALES-2016.pdf","/ArchivosCargados/2016/TEMAS-LOGRO-INDICADORES-PERIODO.pdf","/ArchivosCargados/2016/ENGLISH-USED-IN-CLASS.pdf","/ArchivosCargados/2016/lc-1.pdf","/ArchivosCargados/2016/Temas-logros.pdf","/ArchivosCargados/2016/Taller1-16.pdf","/ArchivosCargados/2016/PROGRAMA-PLATAFORMA.pdf","/ArchivosCargados/2016/first-grade.pdf"],"actividades":["http://www.domain.com/ArchivosCargados/2016/CUADRO-PRIMER-BIMESTRE-2016-PRIMERO.pdf","http://www.domain.com/ArchivosCargados/2016/Hojita-Seres-Vivos.pdf","http://www.domain.com/ArchivosCargados/2016/2016-CONTENIDOS-ARTES-PLASTICAS-PRIMARIA-J-T-12345.pdf","http://www.domain.com/ArchivosCargados/2016/PRIMERO-RELILGION.pdf","http://www.domain.com/ArchivosCargados/2016/Estructura-RELGION.pdf","http://www.domain.com/ArchivosCargados/2016/PRIMERO-RELIGION.pdf","http://www.domain.com/ArchivosCargados/2016/RESPUESTAS-EUCARISTIA.pdf","http://www.domain.com/ArchivosCargados/2016/respuestas-misa.pdf","http://www.domain.com/ArchivosCargados/2016/Estructura-general-grado-primero-2016.pdf","http://www.domain.com/ArchivosCargados/2016/VESTUARIO-CLASE-EXPRESION-CORPORAL-2016.pdf","http://www.domain.com/ArchivosCargados/2016/RECOMENDACIONES-GENERALES-2016.pdf","http://www.domain.com/ArchivosCargados/2016/TEMAS-LOGRO-INDICADORES-PERIODO.pdf","http://www.domain.com/ArchivosCargados/2016/ENGLISH-USED-IN-CLASS.pdf","http://www.domain.com/ArchivosCargados/2016/lc-1.pdf","http://www.domain.com/ArchivosCargados/2016/Temas-logros.pdf","http://www.domain.com/ArchivosCargados/2016/Taller1-16.pdf","http://www.domain.com/ArchivosCargados/2016/PROGRAMA-PLATAFORMA.pdf","http://www.domain.com/ArchivosCargados/2016/first-grade.pdf"]}],"cookies":["ASP.NET_SessionId=\"0vy5tp45alrfik55q3bs24mr\";Path=\"/\";Domain=\"www.domain.com\";Port=\"80\""],"connectorVersionGuid":"e35c3b39-301e-4474-b75e-5473963b1852","connectorGuid":"b0fe3dd7-fd92-472b-b197-14d86f91c5fb","pageUrl":"http://www.domain.com/principal.aspx?tbindex=3&tab_codigo=33","outputProperties":[{"name":"actividades","type":"URL"}]}
基本上,我有三个对象:actividades,actividades / _text和actividades / _source。我想创建一个最终的json文件,它有一对actividades和actividades / _text,顺序与文件中出现的顺序相同,我的意思是,例如:
"Ciencias Naturales Logro y Autoevaluación":"http://www.domain.com/ArchivosCargados/2016/CUADRO-PRIMER-BIMESTRE-2016-PRIMERO.pdf"
我想使用linux终端这样做,如果我必须安装一些实用程序并不重要。我试着用jq没有成功:
jq '.actividades + .actividades/_text' test.json
有什么想法吗?
答案 0 :(得分:1)
关键是transpose
过滤器。以下内容:
.results[0] | [ ."actividades/_text", .actividades ] | transpose
产生如下的对:
[
"Ciencias Naturales Logro y Autoevaluación",
"http://www.domain.com/ArchivosCargados/2016/CUADRO-PRIMER-BIMESTRE-2016-PRIMERO.pdf"
]
要将这些对组合成一个对象,请点击:
| map({ (.[0]):.[1]} ) | add
要生成“X”形式的输出:“Y”,如您所示,您可以使用以下调用:
jq -r '.results[0]
| [ ."actividades/_text", .actividades ]
| transpose[]
| "\"\(.[0])\":\"\(.[1])\"" '
根据您的输入,这最后产生:
"Ciencias Naturales Logro y Autoevaluación":"http://www.domain.com/ArchivosCargados/2016/CUADRO-PRIMER-BIMESTRE-2016-PRIMERO.pdf"
"Ciencias Naturales Seres Vivos - Objetos Inertes":"http://www.domain.com/ArchivosCargados/2016/Hojita-Seres-Vivos.pdf"
....
....