यहाँ jtc
यूनिक्स उपयोगिता पर आधारित एक आसान समाधान है :
bash $ jtc -w'<.*>D:' -eu echo '"{}"' \; file.json
{
"amount": "1000",
"country": "GB",
"customer": "user",
"id": "1",
"plate": "BMT-216-A",
"pndNumber": "20000",
"zoneNumber": "4"
}
bash $
यदि आप json फ़ाइल में परिवर्तन ठीक से लागू करना चाहते हैं, तो -f
स्विच का उपयोग करें, जैसे:
bash $ jtc -f -w'<.*>D:' -eu echo '"{}"' \; file.json
प्रस्तावित समाधान एक मनमाने ढंग से संरचित जोंस के साथ सही ढंग से काम करेगा, जैसे:
bash $ jtc -w'<.*>D:' -eu echo '"{}"' \; file.json
{
"amount": "1000",
"country": "GB",
"customer": "user",
"id": "1",
"plate": "BMT-216-A",
"pndNumber": "20000",
"sub": {
"subvalue": "123"
},
"zoneNumber": "4"
}
bash $
- यदि आप शून्य मानों को उद्धृत करना पसंद करते हैं, तो बस एक वॉक-पाथ में फेंक दें
-w'<>n:'
- यदि आप बूलियन मानों को उद्धृत करना पसंद करते हैं, तो वॉक-पाथ में फेंक दें
-w'<any>b:'
इसके अलावा, रिवर्स टास्क (सभी file.json
संख्याओं को रेखांकित करें ) आसानी से इसी तरह से प्राप्त किया जाता है: कहते हैं, पहले से ही "अंक" है, सभी संख्याओं को प्राप्त करने के लिए:
bash $ jtc -w'<^\d+$>R:' -eu echo {-} \; file.json
{
"amount": 1000,
"country": "GB",
"customer": "user",
"id": 1,
"plate": "BMT-216-A",
"pndNumber": 20000,
"zoneNumber": 4
}
bash $
अद्यतन : jtc
लागू करने का नवीनतम संस्करण अब टेम्पलेट्स और नामस्थान। इसके साथ बाहरी आवरण के किसी भी आहरण की आवश्यकता नहीं है:
bash $ jtc -w'<.*>D:' -u'<.*>D:<val>v' -T'"{val}"' file.json
{
"amount": "1000",
"country": "GB",
"customer": "user",
"id": "1",
"plate": "BMT-216-A",
"pndNumber": "20000",
"zoneNumber": "4"
}
jtc
उपयोगकर्ता गाइड: https://github.com/ldn-softdev/jtc/blob/master/User%20Guide.md
{"a":{"b":1},"b":null}
जाता है{ "a": "{\"b\":1}", "b": "null" }