【发布时间】:2015-07-31 15:04:38
【问题描述】:
我们正在使用 Pentaho CTools 库构建一个网站,它有一个图形仪表板编辑器,可以为仪表板的一部分写出 JSON 格式的文件。
我想在签入 git 之前对这些文件进行转换,以便按键对它们进行排序,然后按某些键的值对它们进行排序。目的是让差异更容易,因为编辑器有重新排列所有 json 字段的习惯。
例如,我们可能有这样的事情:
{
"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": "[]"
},
...
我们能够jq --sort-keys (http://stedolan.github.io/jq/) 对所有键进行排序,但我正在努力找出如何使用sort_by 函数然后按某些键的值对某些特定元素进行排序(因此,在上面的示例中,例如按properties.name 排序。有什么想法吗?
【问题讨论】: