Stiamo costruendo un sito Web utilizzando la libreria Pentaho CTools, che ha un editor grafico del dashboard che scrive i file in formato JSON per parte del dashboard.Come ordinare un file JSON con chiavi e valori di quei tasti in jq
Mi piacerebbe applicare una trasformazione a questi file prima del check-in per git per ordinarli per chiave e poi per il valore di alcuni tasti. Lo scopo è rendere le differenze più semplici, poiché l'editor ha l'abitudine di riorganizzare tutti i campi JSON.
Ad esempio, potremmo avere qualcosa di simile:
{
"components": {
"rows": [
{
"id": "CHARTS",
"name": "Charts",
"parent": "UnIqEiD",
"properties": [
{
"name": "Group",
"type": "Label",
"value": "Charts"
}
],
"type": "Label",
"typeDesc": "<i>Group</i>"
},
{
"id": "kjalajsdjf",
"meta_cdwSupport": "true",
"parent": "CHARTS",
"properties": [
{
"name": "name",
"type": "Id",
"value": "Value1"
},
{
"name": "title",
"type": "String",
"value": "Value2"
},
{
"name": "listeners",
"type": "Listeners",
"value": "[]"
},
...
Siamo in grado di jq --sort-keys
(http://stedolan.github.io/jq/) per ordinare tutte le chiavi, ma sto lottando per trovare il modo di utilizzare la funzione sort_by
per poi sorta alcuni elementi specifici per il valore di alcuni tasti (così, nell'esempio di cui sopra, l'ordinamento per properties.name
per esempio. Tutte le idee?
Nota: per chiunque voglia effettivamente farlo con un file '.cdfde' di CTools, l'ordinamento delle chiavi sembra essere corretto, così come l'ordinamento degli elementi' name' all'interno dell'array delle proprietà, ma l'ordinamento del 'componente'' rows' di 'id' è un no-no, rompe le cose. Quindi non farlo ... – karlos