में उन चाबियों की कुंजी और मानों द्वारा किसी जेसन फ़ाइल को सॉर्ट करने के लिए कैसे करें हम पेंटाहो सीटूल लाइब्रेरी का उपयोग कर एक वेबसाइट बना रहे हैं, जिसमें एक ग्राफिकल डैशबोर्ड संपादक है जो डैशबोर्ड के हिस्से के लिए JSON- प्रारूप फ़ाइलों को लिखता है।jq
मैं कुंजी द्वारा क्रमबद्ध करने के लिए चेक-इन करने से पहले इन फ़ाइलों में एक ट्रांसफॉर्म लागू करना चाहता हूं और फिर कुछ कुंजी के मूल्य से। इसका उद्देश्य अंतर को आसान बनाना है, क्योंकि संपादक के पास सभी जेसन फ़ील्ड को पुनर्व्यवस्थित करने की आदत है।
उदाहरण के लिए, हम कुछ इस तरह हो सकता है: कुंजी के सभी सुलझाने के लिए
{
"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
आधार पर क्रमित करके तो तरह कुछ विशिष्ट तत्वों के लिए। कोई भी विचार?
नोट: किसी भी व्यक्ति के लिए जो वास्तव में CTools '.ddfde' फ़ाइल के साथ ऐसा करना चाहता है, कुंजी को सॉर्ट करना ठीक लगता है, जैसा कि गुण सरणी के अंदर 'name' तत्वों को सॉर्ट करना है, लेकिन' घटक' 'को सॉर्ट करना 'आईडी' द्वारा पंक्तियां एक नो-नो है, यह सामान तोड़ती है। तो ऐसा मत करो ... – karlos