คำถามติดแท็ก json

JSON (JavaScript Object Notation) เป็นรูปแบบการแสดงข้อมูลที่มีน้ำหนักเบาซึ่งคล้ายกับแหล่งที่มาของ JavaScript และสามารถเป็นสีแดงได้โดยเครื่องและแก้ไขโดยมนุษย์ด้วยความพยายามบางอย่าง

6
การใช้ jq เพื่อแยกค่าและรูปแบบใน CSV
ฉันมีไฟล์ JSON ด้านล่าง: { "data": [ { "displayName": "First Name", "rank": 1, "value": "VALUE" }, { "displayName": "Last Name", "rank": 2, "value": "VALUE" }, { "displayName": "Position", "rank": 3, "value": "VALUE" }, { "displayName": "Company Name", "rank": 4, "value": "VALUE" }, { "displayName": "Country", "rank": 5, "value": "VALUE" }, ] …
57 bash  python  csv  json  jq 

9
วิธีการแยก JSON ด้วยเชลล์สคริปต์ใน Linux?
ฉันมีเอาต์พุต JSON ซึ่งฉันต้องการแยกพารามิเตอร์บางอย่างใน Linux นี่คือเอาต์พุต JSON: { "OwnerId": "121456789127", "ReservationId": "r-48465168", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "RootDeviceType": "ebs", "State": { "Code": 16, "Name": "running" }, "EbsOptimized": false, "LaunchTime": "2014-03-19T09:16:56.000Z", "PrivateIpAddress": "10.250.171.248", "ProductCodes": [ { "ProductCodeId": "aacglxeowvn5hy8sznltowyqe", "ProductCodeType": "marketplace" } ], "VpcId": "vpc-86bab0e4", "StateTransitionReason": …

7
ฉันจะนับจำนวนครั้งของคำในไฟล์ข้อความด้วยบรรทัดคำสั่งได้อย่างไร
ฉันมีไฟล์ JSON ขนาดใหญ่ที่อยู่บนบรรทัดเดียวและฉันต้องการใช้บรรทัดคำสั่งเพื่อให้สามารถนับจำนวนคำที่เกิดขึ้นในไฟล์ได้ ฉันจะทำสิ่งนั้นได้อย่างไร
43 bash  command-line  grep  json 

4
จำกัด บริบทของ grep ไม่เกินอักขระ N บรรทัด
ฉันต้อง grep ผ่านไฟล์ JSON บางไฟล์ที่ความยาวบรรทัดเกินสองสามพันตัวอักษร ฉันจะ จำกัด grep เพื่อแสดงบริบทได้สูงสุด N ตัวอักษรไปทางซ้ายและขวาของการจับคู่อย่างไร เครื่องมืออื่นที่ไม่ใช่ grep ก็ใช้ได้เช่นกันตราบใดที่มันมีอยู่ในแพ็คเกจ Linux ทั่วไป นี่จะเป็นตัวอย่างเอาต์พุตสำหรับสวิตช์ grep จินตภาพ inary : $ grep -r foo * hello.txt: Once upon a time a big foo came out of the woods. $ grep -Ф 10 -r foo * hello.txt: ime a big …
31 grep  search  json 

1
วิธีการพิมพ์ json โดยใช้ jq standalone
ปัจจุบันเมื่อฉันต้องการพิมพ์ไฟล์ json โดยใช้jqฉันจะใช้: cat file.json | grep jq . แต่ฉันคาดว่าjqจะยอมรับชื่อไฟล์เป็นอาร์กิวเมนต์โดยไม่ต้องย้อนcatกลับ หน้าคนพูดว่า: jq [options ... ] ตัวกรอง [ไฟล์ ... ] ... โดยค่าเริ่มต้น jq อ่านกระแสของวัตถุ JSON (คั่นช่องว่าง) จาก stdin อาจระบุหนึ่งไฟล์ขึ้นไปซึ่งในกรณีนี้ jq จะอ่านอินพุตจากไฟล์เหล่านั้นแทน ยังทำงานอยู่: jq file.json ล้มเหลวโดยการทิ้งข้อผิดพลาดการคอมไพล์ที่ไม่ได้กำหนดคีย์ ฉันควรจะเพิ่มไฟล์เมื่อทำงานjqอย่างไร

2
วิธีการแปลงสตริง json แบบฝัง (ที่ยกมา) เป็น json
ฉันคุ้นเคยกับ "jq" สำหรับการแยกวิเคราะห์ json ฉันทำงานกับหนึ่งบริการที่สร้างการตอบสนอง json โดยที่คุณสมบัติอย่างใดอย่างหนึ่งคือสตริง json ฉันจะแปลงค่าที่ยกมาเป็นสตริง json ที่ถูกต้องเพื่อให้ฉันสามารถประมวลผลด้วย jq ได้อย่างไร ตัวอย่างเช่นหากฉันเพิ่งดู json ที่พิมพ์สวยแบบธรรมดาจาก "jq." นี่เป็นข้อความที่ตัดตอนมาสั้น ๆ ของผลลัพธ์: "someJsonString": "{\"date\":\"2018-01-08\", ... ฉันสามารถใช้ jq เพื่อรับค่าของคุณสมบัตินั้น แต่ฉันต้องแปลงสตริงที่ยกมาเพื่อ json ที่ถูกต้องโดย "unescaping" มัน ฉันคิดว่าฉันสามารถแปะไปที่ sed ลบการเปิดและสิ้นสุดเครื่องหมายคำพูดคู่และลบเครื่องหมายแบ็กสแลชทั้งหมด (" sed -e 's/^"//' -e 's/"$//' -e 's/\\//g'") ดูเหมือนว่าจะใช้งานได้ แต่ไม่ได้ดูเหมือนโซลูชันที่แข็งแกร่งที่สุด อัปเดต : เพื่อให้ชัดเจนขึ้นเกี่ยวกับสิ่งที่ฉันทำนี่เป็นตัวอย่างสองสามตัวอย่างที่แสดงสิ่งที่ฉันได้ลอง: % curl -s …
22 json  jq 

8
แยก JSON โดยใช้ Python หรือไม่
ฉันมีไฟล์ JSON members.jsonดังต่อไปนี้ { "took": 670, "timed_out": false, "_shards": { "total": 8, "successful": 8, "failed": 0 }, "hits": { "total": 74, "max_score": 1, "hits": [ { "_index": "2000_270_0", "_type": "Medical", "_id": "02:17447847049147026174478:174159", "_score": 1, "_source": { "memberId": "0x7b93910446f91928e23e1043dfdf5bcf", "memberFirstName": "Uri", "memberMiddleName": "Prayag", "memberLastName": "Dubofsky" } }, { "_index": "2000_270_0", "_type": …
18 bash  python  json 

3
การตั้งค่าเอาต์พุต jq เป็น Bash Variable
ฉันใช้ curl เพื่อให้ JSON กลับมาจาก api ที่เหลือเช่นนี้ content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) echo "${content}"| jq -r '.data.value' ซึ่งสร้างคุณค่าที่ฉันต้องการ อย่างไรก็ตาม; เมื่อฉันเปลี่ยนโค้ดด้านบนให้มีลักษณะดังนี้: content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) username=$(echo "${content}"| jq -r '.data.value') echo $username ไม่ได้ผลิตอะไรเลย ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไรเพื่อให้ตัวแปรชื่อผู้ใช้ได้รับการกำหนดผลลัพธ์
18 bash  curl  json  jq 

4
แยกหนึ่งฟิลด์จากอาร์เรย์ JSON เป็นอาร์เรย์ทุบตี
ฉันมีเอาต์พุต JSON ที่มีรายการของวัตถุที่เก็บอยู่ในตัวแปร (ฉันอาจไม่ได้ใช้ถ้อยคำที่ถูกต้อง) [ { "item1": "value1", "item2": "value2", "sub items": [ { "subitem": "subvalue" } ] }, { "item1": "value1_2", "item2": "value2_2", "sub items_2": [ { "subitem_2": "subvalue_2" } ] } ] ฉันต้องการค่าทั้งหมดสำหรับ item2 ในอาร์เรย์เพื่อให้สคริปต์ bash ทำงานบน ubuntu 14.04.1 ฉันได้พบวิธีมากมายในการรับผลลัพธ์ทั้งหมดลงในอาร์เรย์ แต่ไม่ใช่รายการที่ฉันต้องการ

5
วิธีดึงข้อมูลจากไฟล์ JSON
ฉันมีช่องค้นหาคำตอบสำหรับคำถามของฉัน แต่ไม่พบหรือดีกว่าบอกว่าฉันไม่ได้รับสิ่งที่ฉันพบ ดังนั้นให้พูดคุยเกี่ยวกับสิ่งที่เป็นปัญหาของฉัน ฉันกำลังใช้ซอฟต์แวร์ควบคุมสมาร์ทโฮมกับ Raspberry Pi และเมื่อฉันพบว่าเมื่อสุดสัปดาห์นี้ด้วยการรับ pilight ฉันสามารถจับข้อมูลจากเซ็นเซอร์วัดอุณหภูมิภายนอกของฉันได้ ผลลัพธ์ของการได้รับ pilight ดูเหมือนว่า: { "message": { "id": 4095, "temperature": 409.5 }, "origin": "receiver", "protocol": "alecto_wsd17", "uuid": "0000-b8-27-eb-0f3db7", "repeats": 3 } { "message": { "id": 1490, "temperature": 25.1, "humidity": 40.0, "battery": 1 }, "origin": "receiver", "protocol": "alecto_ws1700", "uuid": "0000-b8-27-eb-0f3db7", "repeats": 3 } …

2
คีย์การพิมพ์ jq และค่าสำหรับทั้งหมดในวัตถุย่อย
ฉันพบQ / A นี้พร้อมวิธีแก้ปัญหาเพื่อพิมพ์คีย์ทั้งหมดในวัตถุ: jq -r 'keys[] as $k | "\($k), \(.[$k] | .ip)"' ในกรณีของฉันฉันต้องการดำเนินการข้างต้น แต่ในวัตถุย่อย: jq -r '.connections keys[] as $k | "\($k), \(.[$k] | .ip)"' ไวยากรณ์ที่เหมาะสมในการทำเช่นนี้คืออะไร?
13 json  jq 

1
ไม่สามารถหาเอกสารใน json.tool [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันสามารถค้นหาบทความกระจัดกระจายออนไลน์ที่ใช้ json.tool เพื่อผลิตไพ ธ อนสวย แต่ไม่มีเอกสารที่ชัดเจนเกี่ยวกับการใช้งาน ฉันตรวจสอบdocs.python แต่ไม่มีเอกสารอย่างเป็นทางการของ json.tool ฉันมีเวิร์กโฟลว์สองสามตัว (เขียนโดยคนอื่น) ที่ใช้ json.tool เพื่อตรวจสอบความถูกต้องของ json แต่ฉันได้เห็นโพสต์ที่เตือนว่า json.tool นั้นไม่ได้สร้าง json ที่ถูกต้องเสมอไป ดังนั้นฉันต้องการที่จะเข้าใจเพิ่มเติมเกี่ยวกับวิธีการทำงานของ json.tool ใครบ้างที่สามารถแนะนำบางแห่งที่มีเอกสารที่ชัดเจนและครอบคลุมบน json.tool
12 python  json 

4
เหตุใดเนื้อหา JSON จาก heredoc จึงไม่สามารถแยกวิเคราะห์ได้
ฉันมีส่วนของ JSON ต่อไปนี้ใช้ไม่ได้: VALUE=<<PERSON { "type": "account", "customer_id": "1234", "customer_email": "jim@gmail.com" } PERSON echo -n "$VALUE" | python -m json.tool ผลลัพธ์คือ: ไม่สามารถถอดรหัสวัตถุ JSON ได้ ทำเช่นเดียวกันกับjqเช่น echo -n "$VALUE" | jq '.' ไม่มีเอาต์พุต มีพฤติกรรมเหมือนกันสำหรับสิ่งต่อไปนี้: VALUE=<<PERSON '{ "type": "account", "customer_id": "1234", "customer_email": "jim@gmail.com" }' PERSON echo -n "$VALUE" | python -m json.tool …

4
ล้อมตัวเลขทั้งหมดใน JSON ด้วยเครื่องหมายคำพูด
มีข้อมูล JSON ซึ่งมีค่าตัวเลขบางค่า จะแปลงตัวเลขทั้งหมดเป็นสตริงได้อย่างไร? (ห่อด้วยคำพูด) ตัวอย่าง: { "id":1, "customer":"user", "plate":"BMT-216-A", "country":"GB", "amount":1000, "pndNumber":20000, "zoneNumber":4 } ควรกลายเป็น { "id":"1", "customer":"user", "plate":"BMT-216-A", "country":"GB", "amount":"1000", "pndNumber":"20000", "zoneNumber":"4" }
11 shell  json  jq 

5
awk / sed / perl one liner + วิธีพิมพ์เฉพาะบรรทัดคุณสมบัติจากไฟล์ json
วิธีพิมพ์เฉพาะคุณสมบัติบรรทัดจากไฟล์ json ตัวอย่างของไฟล์ json { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "items" : [ { "href" : "http://master02:8080/api/v1/clusters/HDP/configurations?type=kafka-env&tag=version1527250007610", "tag" : "version1527250007610", "type" : "kafka-env", "version" : 8, "Config" : { "cluster_name" : "HDP", "stack_id" : "HDP-2.6" }, "properties" : { "content" : "\n#!/bin/bash\n\n# Set KAFKA specific environment variables here.\n\n# The java implementation to …
10 awk  sed  perl  json  jq 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.