ทำไมทุกคนถึงเลือก JSON Over XML สำหรับ jQuery [ปิด]


155

ฉันคิดว่า XML นั้นมีความคล่องตัวสูงและสามารถใช้เป็นฐานข้อมูลขนาดเล็กได้ ฉันเคยเห็น XML ใช้ทุกที่ ฉันได้เห็น บริษัท ขนาดใหญ่เปลี่ยนไปJSON แม้แต่ Microsoft ก็มีการรองรับ JSON hype ทั้งหมดเหนือ JSON คืออะไร


14
"ทุกคน" และ "ทุกที่" มีแง่แน่นอนเช่น ...
แมทธิว Groves

73
@eliben XML ไม่ได้ดูดจริงๆ มันทรงพลังมาก แต่ก็เหมือนกับการล่าเหยื่อด้วยเครื่องยิงจรวดมันอาจไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป
ด่าน

20
สิ่งที่ผู้คนส่วนใหญ่ใช้ XML ในปัจจุบันน่าจะดีกว่าใน JSON
MGOwen

39
@Dan หาก XML มีความสนุกมากเท่ากับการล่ากระต่ายด้วยเครื่องยิงจรวด (สมมุติ - ฉันไม่สามารถพูดได้ว่าฉันลองด้วยตัวเอง)
David Johnstone

4
เพราะ 'ทางเลือกที่ปราศจากไขมันสำหรับ XML' -json.org
DMin

คำตอบ:


226

โดยพื้นฐานแล้วเนื่องจาก JSON ได้รับการยอมรับโดย JavaScript โดยทั่วไปแล้วมันมีน้ำหนักเบาเรียบง่ายและพกพาได้สูงเพราะอาศัยเพียงโครงสร้างพื้นฐานสองประการเท่านั้น:

  • ชุดของคู่ชื่อ / ค่า ในภาษาต่างๆสิ่งนี้จะถูกรับรู้ในฐานะวัตถุ, บันทึก, โครงสร้าง, พจนานุกรม, ตารางแฮช, รายการคีย์หรืออาร์เรย์ที่เชื่อมโยง
  • รายการสั่งซื้อของค่า ในภาษาส่วนใหญ่สิ่งนี้ถูกรับรู้เป็นอาร์เรย์เวกเตอร์รายการหรือลำดับ

3
1 .. จริงๆ .. จำนวนมากดังนั้นการสนับสนุนประเภทข้อมูลที่แตกต่างกันเรื่องมากเทียบกับข้อความ XML ดิบ
Xinus

48
+1 โดยเฉพาะอย่างยิ่งเนื่องจากการแยกวิเคราะห์ JSON นั้นมีประสิทธิภาพมากกว่าเมื่อเทียบกับการแยกวิเคราะห์ XML อย่างไม่น่าเชื่อ เมื่อชุดข้อมูลที่คุณสนใจเกินขีด จำกัด (และเล็ก ๆ น้อย ๆ ที่น่ากลัว) ความแตกต่างด้านประสิทธิภาพจะเห็นได้ชัดเจน
Magsol

1
บางคนแสดงข้อมูลที่บอกว่าการแยกวิเคราะห์ JSON นั้นเร็วกว่า XML ในเบราว์เซอร์สมัยใหม่ คำตอบสำหรับ SO ที่นี่จะบอกเป็นอย่างอื่น: stackoverflow.com/questions/4596465/…
HDave

136

XML ไม่เริ่มส่องแสงจนกว่าคุณจะเริ่มผสม schema ที่มีเนมสเปซต่างกันเข้าด้วยกัน จากนั้นคุณจะเห็น JSON เริ่มล้มลง แต่ถ้าคุณต้องการรูปแบบการทำให้เป็นอนุกรมสำหรับข้อมูลของคุณ JSON นั้นมีขนาดเล็กลงเบาขึ้นอ่านได้ง่ายกว่ามนุษย์ทั่วไปและเร็วกว่า XML


31
+1 สำหรับแสดงว่า XML มีประโยชน์จริง ๆ บ่อยครั้งที่คนใช้ XML แม้ว่าพวกเขาจะได้รับสิ่งที่ง่ายกว่ามาก
Daniel Pryden

1
ใช่จะต้องเห็นด้วยกับ jcd และ Daniel ที่นี่ การตอบสนองที่มีคุณภาพเกี่ยวกับสาเหตุที่ XML ยังค่อนข้างดีสำหรับบางสิ่ง
knowncitizen

3
XML อ่านได้น้อยลงอย่างไรฉันพบว่าแทบจะเป็นไปไม่ได้ที่จะอ่าน json ที่ฉันคิดว่าลำดับชั้นของ XML นั้นเข้าใจได้ง่ายกว่ามาก บางทีฉันอาจจะไม่ได้ทำงานที่เพียงพอกับ JSON
Colton

เนมสเปซเป็นโซลูชัน xml เพื่อแก้ไขปัญหาบางอย่างเมื่อคุณทำสิ่งต่างๆด้วย XML หากคุณกำลังใช้ json ให้ค้นหาวิธีแก้ไขปัญหาjsonเพื่อแก้ไขปัญหาเดียวกันในลักษณะ json สำหรับฉันอาร์กิวเมนต์ namespaces นั้นเหมือนกับ "Oh! แต่ json ไม่มีคุณสมบัติ!"
Redben

61

ฉันพบว่าประโยชน์ใหญ่ของ JSON ผ่าน XML คือฉันไม่ต้องตัดสินใจว่าจะจัดรูปแบบข้อมูลอย่างไร ดังที่บางคนได้แสดงมีหลายวิธีในการทำโครงสร้างข้อมูลอย่างง่าย ๆ ใน XML - เช่นองค์ประกอบ, เป็นค่าแอตทริบิวต์, ฯลฯ จากนั้นคุณต้องจัดทำเอกสารเขียน XML Schema หรือ Relax NG หรืออึ ... ความยุ่งเหยิง

XML อาจมีข้อดี แต่สำหรับการแลกเปลี่ยนข้อมูลพื้นฐาน JSON มีขนาดกะทัดรัดและตรงกว่ามากขึ้น ในฐานะนักพัฒนา Python ไม่มีความต้านทานที่ไม่ตรงกันระหว่างชนิดข้อมูลอย่างง่ายใน JSON และ Python ดังนั้นถ้าฉันเขียน handler ฝั่งเซิร์ฟเวอร์สำหรับการค้นหา AJAX ที่ถามเกี่ยวกับสภาพหิมะสำหรับสกีรีสอร์ทโดยเฉพาะฉันจะสร้างพจนานุกรมดังนี้:

conditions = {
    'new_snow_24': 5.0,
    'new_snow_48': 8.5,
    'base_depth': 88.0,
    'comments': 'Deep and steep!',
    'chains_required': True,
}
return simplejson.dumps(conditions)   # Encode and dump `conditions` as a JSON string

เมื่อทำการแปลผ่าน JSON (โดยใช้ไลบรารีอย่าง 'simplejson' สำหรับ Python) โครงสร้าง JSON ที่ได้จะมีลักษณะใกล้เคียงกันเกือบทั้งหมด (ยกเว้นใน JSON, booleans จะต่ำกว่า)

การถอดรหัสโครงสร้างนั้นต้องการตัวแยกวิเคราะห์ JSON เท่านั้นไม่ว่าจะเป็น Javascript หรือ Objective-C สำหรับแอป iPhone ดั้งเดิมหรือ C # หรือไคลเอนต์ Python ทุ่นลอยนั้นจะถูกตีความว่าเป็นทุ่นสายเป็นสตริและบูลส์เหมือนบูลีน การใช้ไลบรารี่ 'simplejson' ใน Python simplejson.loads(some_json_string)คำสั่งจะให้โครงสร้างข้อมูลแบบเต็มเหมือนกับที่ฉันทำในตัวอย่างด้านบน

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

<conditions>
    <new-snow-24>5</new-snow-24>
    <new-snow-48>8.5</new-snow-48>
    <chains-required>yes</chains-required>
    <comments>deep and steep!</comments>
</conditions>

<conditions newSnow24="5" newSnow48="8.5" chainsRequired="yes">
   <comments>deep and steep!</comments>
</conditions>

ดังนั้นไม่เพียง แต่ฉันต้องคิดเกี่ยวกับข้อมูลที่ฉันอาจต้องการส่งถึงลูกค้าฉันต้องคิดเกี่ยวกับวิธีจัดรูปแบบ XML ในขณะที่ง่ายกว่า SGML ธรรมดาโดยเข้มงวดกับกฎของมันมากขึ้น แต่ก็ยังมีวิธีคิดมากมายเกี่ยวกับข้อมูลนั้น จากนั้นฉันจะต้องสร้างมันขึ้นมา ฉันไม่สามารถใช้พจนานุกรม Python (หรือโครงสร้างข้อมูลอย่างง่ายอื่น ๆ ) และพูดว่า "ไปทำให้ตัวเองเป็น XML ของฉัน" ฉันไม่สามารถรับเอกสาร XML และพูดทันทีว่า "ไปทำให้ตัวเองเป็นวัตถุและโครงสร้างข้อมูล" โดยไม่ต้องเขียนโปรแกรมวิเคราะห์คำที่กำหนดเองหรือไม่ต้องการค่าใช้จ่ายเพิ่มเติมของ XML Schema / Relax NG และความเจ็บปวดอื่น ๆ

สิ่งที่สั้นคือมันง่ายกว่าและตรงกว่าในการเข้ารหัสและถอดรหัสข้อมูลไปยัง JSON โดยเฉพาะอย่างยิ่งสำหรับการแลกเปลี่ยนอย่างรวดเร็ว สิ่งนี้อาจนำไปใช้กับผู้ที่มาจากพื้นหลังภาษาแบบไดนามิกเป็นชนิดข้อมูลพื้นฐาน (รายการพจนานุกรม ฯลฯ ) ที่สร้างขึ้นใน JavaScript / JSON แมปโดยตรงกับประเภทข้อมูลเดียวกันหรือคล้ายกันใน Python, Perl, Ruby ฯลฯ


34

ประสิทธิภาพของ JSON นั้นไม่แตกต่างจาก XML มากนักสำหรับกรณีการใช้งานส่วนใหญ่ JSON นั้นไม่เหมาะและสามารถอ่านได้สำหรับโครงสร้างรังแบบลึก ... คุณจะพบกับ]]]}}] ซึ่งทำให้การดีบักยาก


31

มันเบาเมื่อเทียบกับ XML หากคุณต้องการปรับขนาดลดความต้องการแบนด์วิดท์ของคุณ!

เปรียบเทียบ JSON

 [
      {
           color: "red",
           value: "#f00"
      },
      {
           color: "green",
           value: "#0f0"
      },
      {
           color: "blue",
           value: "#00f"
      },
      {
           color: "cyan",
           value: "#0ff"
      },
      {
           color: "magenta",
           value: "#f0f"
      },
      {
           color: "yellow",
           value: "#ff0"
      },
      {
           color: "black",
           value: "#000"
      }
 ]

เป็น XML:

 <colors>
      <color >
           <name>red</name>
           <value>#f00</value>
      </color>
      <color >
           <name>green</name>
           <value>#0f0</value>
      </color>
      <color >
           <name>blue</name>
           <value>#00f</value>
      </color>
      <color >
           <name>cyan</name>
           <value>#0ff</value>
      </color>
      <color >
           <name>magenta</name>
           <value>#f0f</value>
      </color>
      <color >
           <name>yellow</name>
           <value>#ff0</value>
      </color>
      <color >
           <name>black</name>
           <value>#000</value>
      </color>
 </colors>

23
ไม่เพียงแค่เล็กกว่า แต่เป็นมิตรกับมนุษย์มากกว่า XML ดูเหมือนมนุษย์พยายามพูดไม่ดีเหมือนคอมพิวเตอร์
deft_code

15
XML ของคุณยังสามารถลดค่า XML wtih แอตทริบิวต์แทนขององค์ประกอบประเภทง่าย (ชื่อ / ค่า)
แมทธิว Whited

4
@ Matthew: ใช่ แต่แล้วมันดูไม่สอดคล้องและน่าเกลียด และคุณยังต้องการแท็กเปิด / ปิดสำหรับองค์ประกอบ JSON (อย่างน้อยที่สุด) ลดจำนวนแท็กที่คุณต้องใช้ลงครึ่งหนึ่ง
Ron Gejman

2
ดูตัวอย่างของ Marc ฉันไม่เห็นว่าคุณอ่านเวอร์ชันของเขาง่ายกว่าเขาได้อย่างไร stackoverflow.com/questions/1743532/…
Matthew Whited

1
ความแตกต่างคือความยาวไม่ได้ใหญ่ขนาดนั้นสำหรับฉันเลย
vtd-xml-author

28

แค่เกร็ดเล็กเกร็ดน้อยจากประสบการณ์ส่วนตัวของฉัน:

ฉันเขียนไดเรกทอรี Javascript ขนาดเล็กก่อนอื่นด้วยข้อมูลใน XML แล้วปรับใช้ JSON เพื่อให้สามารถเรียกใช้แบบเทียบเคียงกันและเปรียบเทียบความเร็วกับ Firebug JSON สิ้นสุดลงเร็วกว่าประมาณ 3 เท่า (350-400 ms เทียบกับ 1200-1300 ms เพื่อแสดงข้อมูลทั้งหมด) นอกจากนี้อย่างที่คนอื่น ๆ สังเกตเห็น JSON นั้นง่ายต่อการสังเกตและขนาดไฟล์ก็เล็กลง 25% เนื่องจากมาร์กอัปแบบลีน


2
หากทุกคนสร้างมาตรฐานเหล่านี้เราคงไม่มีข้อโต้แย้งใด ๆ
HDave

20
 <colors>
      <color name='red'     value='#f00'/>
      <color name='green'   value='#0f0'/>
      <color name='blue'    value='#00f'/>
      <color name='cyan'    value='#0ff'/>
      <color name='magenta' value='#f0f'/>
      <color name='yellow'  value='#ff0'/>
      <color name='black'   value='#000'/>
 </colors>

ด้วยคุณสมบัติ XML เป็นสิ่งที่ดี แต่ด้วยเหตุผลบางอย่าง XML ที่ทำเองโดยทั่วไปนั้นทำจากองค์ประกอบ 100% และน่าเกลียด


2
นั่นยังคงเป็นตัวอักษรที่ไม่ใช่ช่องว่างมากกว่าตัวอย่าง JSON และการแยกวิเคราะห์แอตทริบิวต์อาจทำให้รำคาญใน XML
jmucchiello

4
อาจเป็นเพราะประเภทที่ซับซ้อนสามารถอธิบายได้ในองค์ประกอบเท่านั้นเพื่อให้เครื่องมือส่วนใหญ่เริ่มต้น ฉันยอมรับว่า XML นี้ใช้งานและอ่านได้ง่าย
Matthew Whited

18

การใช้งานง่ายโดย JavaScript สามารถเป็นหนึ่งในเหตุผล ..


6
นั่นเป็นเหตุผลใหญ่ที่ฉันใช้มัน การแยกวิเคราะห์ XML ด้วยตนเองมีความซับซ้อนในยามค่ำคืน นอกจากนี้เนื่องจากฉันใช้ Python เพื่อสร้าง JSON ในตอนแรกพวกเขาจัดการข้อมูลและวัตถุในลักษณะที่คล้ายกันมากซึ่งหมายความว่าการเรียงลำดับซีเรียลไปมาทำให้ทุกอย่างมีความสุข!
RandomInsano

10

JSON นั้นดีที่สุดสำหรับการใช้งานข้อมูลในเว็บแอปพลิเคชันจากเว็บเซอร์วิสสำหรับขนาดและความสะดวกในการใช้งานโดยเฉพาะอย่างยิ่งเนื่องจากการสนับสนุนในตัวในJavaScript JavaScriptลองนึกภาพค่าโสหุ้ยการคำนวณสำหรับการแยกวิเคราะห์ส่วน xml เปรียบเทียบกับการค้นหาทันทีใน JSON

ตัวอย่างที่ดีมากคือ JSON-P คุณสามารถรับข้อมูลกลับจากเว็บเซอร์ที่รวมอยู่ในการเรียกฟังก์ชันการโทรกลับเช่นmy_callback({"color": "blue", "shape":"square"});ภายใน<script>แท็กที่สร้างขึ้นแบบไดนามิกเพื่อให้สามารถใช้ข้อมูลในฟังก์ชันmy_callback()ได้โดยตรง ไม่มีวิธีใดที่จะใกล้เคียงกับความสะดวกสบายนี้ด้วยการใช้ XML

XML เป็นรูปแบบของตัวเลือกสำหรับเอกสารขนาดใหญ่ที่คุณมีกรอบการแสดงผลหน้าข้อมูลในหลายรูปแบบโดยใช้ XSLT XML สามารถใช้กับไฟล์การกำหนดค่าแอปพลิเคชันเพื่อให้สามารถอ่านได้ในการใช้งานอื่น ๆ


8

ไม่มีใครพูดถึงข้อดีหลักของ XML: กฎการตรวจสอบ (DTD, XSD) ข้อสรุปของฉันหลังจากใช้ทั้งสอง:

  • JSON นั้นสมบูรณ์แบบสำหรับอาแจ็กซ์โดยเฉพาะถ้าคุณพัฒนาทั้งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์เอง โดยทั่วไปคุณสร้างวัตถุ js ในสคริปต์เซิร์ฟเวอร์ของคุณ!
  • XML ส่องแสงในสภาพแวดล้อมขององค์กรเมื่อคุณต้องกำหนดมาตรฐานการแลกเปลี่ยนข้อมูลระหว่างองค์กรขนาดใหญ่ บ่อยครั้งที่ฝ่ายหนึ่งพัฒนาส่วนหนึ่งก่อนหน้าอีกหนึ่งเดือนดังนั้นจึงได้รับประโยชน์อย่างมากจากการตรวจสอบคำขอของตนกับ XSD ที่ตกลงกันไว้ นอกจากนี้ในองค์กรขนาดใหญ่การถ่ายโอนข้อมูลมักถูกแปลระหว่างระบบที่แตกต่างกัน นี่เป็นจุดแข็งของ XML ด้วยคิดว่า XSLT ตัวอย่าง: การแปลงแบบไม่ใช้โค้ดเป็น JSON: p

แน่นอนว่ามีการพัฒนา json-schema แต่คุณจะไม่พบการสนับสนุนในตัวจากทุกที่

ฉันเป็นแฟนบอยของทั้งคู่พวกเขามีจุดแข็งที่แตกต่างกัน


6

ตอนนี้มีตัวเข้ารหัสและถอดรหัส JSON สำหรับภาษาส่วนใหญ่ไม่มีเหตุผลที่จะไม่ใช้ JSON สำหรับการใช้งานที่เหมาะสม (และนั่นอาจเป็น 90% ของกรณีการใช้งานสำหรับ XML)

ฉันเคยได้ยินว่ามีการใช้สตริง JSON ในฐานข้อมูล SQL ขนาดใหญ่เพื่อให้การเปลี่ยนแปลงสคีมาง่ายขึ้น


5

ค่อนข้างตรงไปตรงมามีไม่มากที่แตกต่างระหว่าง JSON และ XML ในความจริงที่ว่าพวกเขาสามารถเป็นตัวแทนของข้อมูลทุกประเภท อย่างไรก็ตาม XML นั้นมีขนาดใหญ่กว่า JSON และทำให้หนักกว่า JSON


1
ไม่พบคำตอบของคุณที่สร้างแรงบันดาลใจโดยเฉพาะ แต่มันก็ไม่ผิด
deft_code

+1 สำหรับระบุ XML ที่สามารถนำมาใช้ในทางที่จะเป็นที่เหมาะสม superset ของ JSON
เซบาสเตียน

5

JSON ไม่มีอิมพิแดนซ์ - ไม่ตรงกันกับการเขียนโปรแกรม JavaScript JSON สามารถมีจำนวนเต็มสตริงรายการอาร์เรย์ XML เป็นเพียงองค์ประกอบและโหนดที่จำเป็นต้องแยกวิเคราะห์เป็นจำนวนเต็มเป็นต้นก่อนที่จะสามารถใช้งานได้


ความจำเป็นในการแยกวิเคราะห์รายการไม่ถือเอาว่าเป็นอิมพีแดนซ์ไม่ตรงกัน
Rob

9
อิมพีแดนซ์ไม่ตรงกันคือเมื่อแนวคิดไม่แมปอย่างหมดจดจากรูปแบบหนึ่งไปยังอีกรูปแบบเช่นเดียวกับการทำแผนที่วัตถุสัมพันธ์ บางสิ่งเป็นเรื่องง่ายที่จะแสดงกับวัตถุ แต่ยากกับ SQL ในขณะที่สิ่งอื่น ๆ นั้นง่ายต่อการแสดงโดยใช้ SQL แต่ลำดับชั้นของวัตถุมีช่วงเวลาที่ยากที่จะแสดงให้เห็นอย่างชัดเจน ด้วย XML และ JSON สิ่งหนึ่งมักจะต้องใช้งานอีกเล็กน้อยเพื่อให้ได้ความหมายมากกว่าอีกอันหนึ่ง แต่นั่นก็ขึ้นอยู่กับเครื่องมือในการแยกวิเคราะห์ ความหมาย (ส่วนใหญ่) เหมือนกัน
jcdyer

4

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

XML ยังคงยอดเยี่ยม JSON เป็นเพียง "ล่าสุดและยิ่งใหญ่ที่สุด" เปรียบเทียบกับ XML


1
และฉันเชื่อว่าการแก้ไข JavaScript รุ่นใหม่จะเริ่มต้นด้วยการรวมตัวเข้ารหัสและถอดรหัส JSON ที่ "ปลอดภัย" (ไม่ต้องเสียค่าใช้จ่าย)
Nosredna

4

แยกวิเคราะห์ได้ง่ายด้วย JavaScript และมีน้ำหนักเบา (เอกสารใน JSON มีขนาดเล็กกว่าเอกสาร XML ที่มีข้อมูลเดียวกัน)


3

JSON เป็นจาวาสคริปต์ต่อเนื่องที่มีประสิทธิภาพซึ่งคุณสามารถ eval (aJsonString) ได้โดยตรงในวัตถุ JavaScript ภายในเบราว์เซอร์ JSON ที่ไม่ต้องใช้สมองเหมาะสำหรับ JavaScript อย่างสมบูรณ์แบบ ในเวลาเดียวกัน JavaScript เป็นภาษาไดนามิกที่พิมพ์อย่างอิสระและไม่สามารถใช้ประโยชน์จากข้อมูลประเภทเฉพาะทั้งหมดที่มีอยู่ภายในเอกสาร Xml / Xsd ได้ ข้อมูลเมตาเพิ่มเติมนี้ (ซึ่งยอดเยี่ยมสำหรับการใช้งานร่วมกันได้) เป็นอุปสรรคใน JavaScript ทำให้น่าเบื่อและน่าเบื่อกว่าที่จะทำงานด้วย

ขนาดเทียบกับประสิทธิภาพ

หากคุณอยู่ในเบราว์เซอร์ JSON จะเร็วกว่าในการทำให้เป็นอนุกรม / ไม่ดีซีเรียลไลซ์เพราะมันง่ายกว่ากะทัดรัดและได้รับการสนับสนุนที่สำคัญกว่า ฉันมีเกณฑ์มาตรฐานฐานข้อมูลนอร์ทวินด์บางตัวเปรียบเทียบขนาดและความเร็วระหว่างซีเรียลไลเซอร์ที่แตกต่างกัน ในไลบรารีคลาสฐานข้อมูล XML DataContract serializer ของ Microsoft นั้นเร็วกว่า JSON ของพวกเขามากกว่า30% แม้ว่าสิ่งนี้จะเกี่ยวข้องกับความพยายามของ Microsoft ในการทำให้ XML serializer เป็นเรื่องที่ฉันสามารถพัฒนาJsonSerializerที่เร็วกว่า2.6 เท่ามากกว่า XML หนึ่งเท่า สำหรับเพย์โหลดตามมาตรฐานดูเหมือนว่า XML นั้นมากกว่า 2 เท่าขนาดของ JSON อย่างไรก็ตามสิ่งนี้สามารถระเบิดได้อย่างรวดเร็วหากส่วนของข้อมูล XML ของคุณใช้เนมสเปซที่แตกต่างกันจำนวนมากภายในเอกสารเดียวกัน



1

ข้อดีอย่างหนึ่งที่สำคัญนอกเหนือจากที่กล่าวถึงที่นี่ สำหรับข้อมูลเดียวกันมีหลายวิธีในการแสดงว่าเป็นไฟล์ XML แต่มีเพียงวิธีเดียวด้วย JSON ลบความกำกวม :)


2
{"colors":["red","green","blue"],"systems":["windows","mac"]}กับ{"entries":[{"type":"color","value":"red"},{"type":"system","value":"mac"}]}
เจอโรม Baum

0

ฉันไม่ชำนาญ แต่จากหลาย บริษัท ที่ฉันทำงานให้กับเราโดยทั่วไปใช้ XML ในสภาพแวดล้อมข้อมูลขนาดเล็กหรือค่าการกำหนดค่า (web.config เป็นตัวอย่างที่ดี)

เมื่อคุณมีข้อมูลจำนวนมากโดยทั่วไปคุณจะต้องรายงานข้อมูลนั้น และ XML ไม่ใช่แหล่งที่ดีสำหรับการรายงาน ในรูปแบบที่ยิ่งใหญ่ของสิ่งต่าง ๆ ดูเหมือนว่าฐานข้อมูลธุรกรรมจะง่ายต่อการรายงาน / ค้นหามากกว่า XML

มันสมเหตุสมผลหรือไม่ ดังที่ฉันได้กล่าวไว้ข้างต้นฉันไม่มีความเชี่ยวชาญ แต่จากประสบการณ์ของฉันสิ่งนี้น่าจะเป็นจริง นอกจากนี้ฉันเชื่อว่าการสนับสนุน JSON ของ Microsoft แบบบูรณาการเนื่องจากคลื่นของนักพัฒนาที่ย้ายไปยังฝั่งไคลเอ็นต์หรือการกระทำที่เขียนสคริปต์เพื่อปรับปรุงภาพของ UI ( Ajax ) และ Ajax ของ Microsoft ไม่ได้ถูกใช้งานมากเท่ากับไลบรารีอื่น ๆ เช่น jQuery และMooTools ( YUIของ Yahooยังอยู่ในส่วนผสมนั้น) เนื่องจากการรวมที่สวยงามของวัตถุที่ต่อเนื่องกันได้โดยใช้ JSON

ฉันพบว่าตัวเองกำลังเขียนรหัสในขณะนี้ใช้ JSON serializer ในรหัส VB ​​ของฉัน มันเป็นวิธีที่ง่ายเกินไปและจากจุดยืนในการอัพเกรด / แก้ไขคุณไม่สามารถเอาชนะได้ เป็นวิธีของ Microsoft ที่ทำให้เราติด VS ฉันเดา ฉันเพิ่งแปลงแอปพลิเคชันองค์กรเป็นใช้ Ajax (ผ่าน jQuery) และใช้รูปแบบ JSON ใช้เวลาประมาณ 2 สัปดาห์ในการทำเช่นนั้น ฉันขอบคุณ Microsoft จริง ๆ ที่รวมเข้าด้วยกันเพราะถ้าไม่มีฉันจะต้องเขียนโค้ดเพิ่มเติมสักหน่อย


ฉันคิดว่ามีความสับสนในคำถามและคำตอบนี้มีการเก็งกำไรมาก
marr75

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