使用终端对来自两个嵌入式 JSON 数组的信息进行成对组合
pairwise combination of information from two embedded JSON arrays using terminal
我有一个这样的 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/_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
有什么想法吗?
关键是 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"
....
....
我有一个这样的 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/_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
有什么想法吗?
关键是 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"
....
....