คุณเป็นตัวแทนของสตริง JSON ได้อย่างไร


184

นี่คือทั้งหมดที่คุณต้องการสำหรับ JSON ที่ถูกต้องใช่มั้ย

["somestring1", "somestring2"]

6
นั่นคืออาร์เรย์ JSON ที่มีสองสตริงใช่ ... มีคำถามนั้นอีกหรือไม่ ;)
เมือง

ฉันอ่านบางสิ่งที่ขัดแย้งกับสิ่งที่เราทุกคนเห็นด้วย ดังนั้นฉันต้องการตรวจสอบความเป็นจริงที่นั่น ขอบคุณ!
finneycanhelp

4
อ่าฉันเข้าใจแล้ว! มันเป็นความอัปยศที่คุณไม่สามารถยอมรับคำถามของคุณเองเป็นคำตอบ: D
Town

:) ก็ไม่ใช่คำตอบที่สนุก เป็นคนที่ยอดเยี่ยมเช่นตัวคุณเองที่ช่วยให้เว็บไซต์นี้ประสบความสำเร็จ!
finneycanhelp

คำตอบ:


299

ฉันจะอธิบายเพิ่มเติมเกี่ยวกับคำตอบที่ยอดเยี่ยมของChrisRและนำภาพจากการอ้างอิงที่ยอดเยี่ยมของเขา

JSON ที่ถูกต้องเริ่มต้นด้วยวงเล็บปีกกา{หรือวงเล็บเหลี่ยม[เสมอไม่มีอะไรอื่น

{จะเริ่มต้นobject:

วงเล็บปีกกาซ้ายตามด้วยสตริงคีย์ (ชื่อที่ไม่สามารถทำซ้ำได้ในเครื่องหมายคำพูด), โคลอนและค่า (ประเภทที่ถูกต้องแสดงอยู่ด้านล่าง), ตามด้วยเครื่องหมายจุลภาคที่เป็นตัวเลือกเพื่อเพิ่มคู่ของสตริงและค่าที่ต้องการ รั้งที่ถูกต้อง

{ "key": value, "another key": value }

คำแนะนำ : แม้ว่าจาวาสคริปต์ยอมรับราคาเดียว', JSON "ใช้เวลาเพียงคนคู่

[จะเริ่มต้นarray:

เครื่องหมายวงเล็บปีกกาซ้ายตามด้วยค่าเครื่องหมายจุลภาคที่เป็นตัวเลือกเพื่อเพิ่มมูลค่ามากขึ้นเมื่อต้องการและเสร็จสิ้นด้วยเครื่องหมายวงเล็บปีกกาด้านขวา

[value, value]

คำแนะนำ : ช่องว่างระหว่างองค์ประกอบจะถูกละเว้นโดยตัวแยกวิเคราะห์ JSON ใด ๆ

และvalueเป็นobject, array, string, number, boolหรือnull:

ภาพแสดงค่า JSON 6 ชนิดสามารถเป็น: สตริง, จำนวน, วัตถุ JSON, Array / list, บูลีนและ null

เพื่อใช่["a", "b"]เป็น JSON ที่ถูกต้องสมบูรณ์เช่นคุณอาจจะพยายามที่ลิงค์ Manish ชี้

นี่คือตัวอย่าง JSON ที่ถูกต้องเพิ่มเติมสองสามตัวอย่างต่อหนึ่งบล็อก:

{}

[0]

{"__comment": "json doesn't accept comments and you should not be commenting even in this way", "avoid!": "also, never add more than one key per line, like this"}

[{   "why":null} ]

{
  "not true": [0, false],
  "true": true,
  "not null": [0, 1, false, true, {
    "obj": null
  }, "a string"]
}

22
การเป็นตัวแทน UI ที่ยอดเยี่ยม
shridutt kothari

JSON ต้องมีเครื่องหมายคำพูดคู่หรือไม่? ฉันพยายามตรวจสอบสตริงของ OP ด้านบน แต่ด้วยเครื่องหมายคำพูดเดี่ยวบน jsonlint.com และมันบอกว่าไม่ถูกต้อง แต่มันถูกต้องเมื่อใช้เครื่องหมายคำพูดคู่
เรย์

@Ray ตามปกตินั่นไม่ใช่คำตอบที่ง่ายใช่หรือไม่ใช่แม้ว่าฉันจะบอกว่ามันเป็น "ใช่แค่ไปด้วยเครื่องหมายคำพูดคู่" json.orgบอกเราเพียงเกี่ยวกับการใช้เครื่องหมายคำพูดคู่และสถานที่ส่วนใหญ่อาจติดตามได้ อย่างไรก็ตามนี่เป็นการตรวจสอบที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับเรื่องนี้: stackoverflow.com/a/2275428/274502
cregox

61

วัตถุ JSON ของคุณในกรณีนี้คือรายการ JSON มักเป็นวัตถุที่มีคุณสมบัติ ชุดของคีย์หนึ่งคีย์ขึ้นไป: คู่ของค่าดังนั้นคุณมักจะเห็นพจนานุกรม:

{ "MyStringArray" : ["somestring1", "somestring2"] }

แล้วคุณสามารถขอค่าของ"MyStringArray"และคุณจะได้รับกลับรายการของสองสตริง, และ"somestring1""somestring2"


12
ตัวอย่างรหัสที่คุณโพสต์นั้นไม่ถูกต้องเมื่อคุณพยายามที่จะแยกสตริงเป็น json มันจะโยนข้อผิดพลาด / ข้อยกเว้น ความจริงที่คุณพูดว่า JSON นั้นเป็นคู่ของคีย์ / ค่าเสมอเช่นกัน ไม่มีสิ่งใดในข้อมูลจำเพาะของ JSON ที่บอกว่าคุณต้องมีคู่ของคีย์ / ค่า เมื่อพูดถึงการขนส่งข้อมูลคู่คีย์ / ค่าเป็นโครงสร้างที่มีประโยชน์ที่สุด แต่สตริงที่โพสต์ OP นั้นถูกต้องสมบูรณ์ JSON: codebeautify.org/jsonviewer/92ac7b
ChrisR

1
ฉันมี API อยู่ในสมองที่คุณต้องการค้นหาค่าในอาร์เรย์โดยใช้คีย์ ดังนั้นสำหรับอาร์เรย์ที่ไม่มีชื่อ {"1": "somestring1", "2": "somestring2"}
PapaSmurf

41

โดยพื้นฐานแล้ว JSON เป็นเพียงตัวอักษรจาวาสคริปต์ที่แสดงถึงคุณค่าของคุณดังนั้นสิ่งที่คุณพูดนั้นถูกต้อง

คุณสามารถค้นหาคำอธิบาย JSON ที่ชัดเจนและดีในhttp://json.org/


5
String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

นี่คือตัวอย่างของสตริง JSON ที่มีEmployeeเป็นวัตถุจากนั้นหลายสตริงและค่าในอาร์เรย์เป็นการอ้างอิงถึง@cregox...

ค่อนข้างซับซ้อน แต่สามารถอธิบายได้มากในสตริง JSON เดียว

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