[英]sort json document using jq
我有一个JSON文档(SSAS表格模型.bim文件)
它的完整结构附有示例json,但如下所示是嵌套的对象结构。 每个对象都有一个我想用来排序的name属性
{
"name": "SemanticModel",
"compatibilityLevel": 1200,
"model": {
"culture": "en-US",
"dataSources": [
{
"name": "BlahDW",
"connectionString": "Provider=SQLOLEDB;Data Source=sql.blah.com;Persist Security Info=false;Integrated Security=SSPI;Initial Catalog=Blah",
"impersonationMode": "impersonateAccount",
"account": "blah\\blah",
"annotations": [
{
"name": "ConnectionEditUISource",
"value": "SqlServer"
}
]
}
],
"tables": [
{
"name": "Employees",
"isHidden": true,
"columns": [
{
"name": "Employee Key",
"dataType": "int64",
"isHidden": true,
"isUnique": true,
"isNullable": false,
"sourceColumn": "Employee Key"
},
{
"name": "Employee Code",
"dataType": "string",
"isHidden": true,
"sourceColumn": "Employee Code"
},
{
"name": "Employee Name",
"dataType": "string",
"isHidden": true,
"sourceColumn": "Employee Name"
},
{
"name": "Home Village Code",
"dataType": "string",
"isHidden": true,
"sourceColumn": "Home Village Code"
}
],
....
我已经尝试过这里提到的walk / 1方法, 如何使用jq完全对任意JSON排序? 但这不起作用,因为它没有尝试对我不认为的集合中的对象进行排序。
我发现这可以通过“ .model.tables | = sort_by(.name)”来对一个集合进行排序 (这要归功于如何通过jq中的键和键值对json文件进行排序 ),但我无法解决结合步行,所以我不需要显式重新创建相同的json结构
我在这里只能掌握我的jq知识,所以想知道是否有人可以将我带入正确的方向
您可以按“名称”对所有数组进行排序,同时保持其他所有内容不变,如下所示:
walk(if type == "array" then sort_by(.name) else . end)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.