ภาษาของแบบสอบถามสำหรับ JSON


11

ฉันมีเซิร์ฟเวอร์ที่ส่งคืนข้อความ JSON ที่มีขนาดใหญ่มากและแอปพลิเคชันไคลเอนต์ของฉันขึ้นอยู่กับการตอบสนองนี้เป็นส่วนหนึ่งเท่านั้น แอปพลิเคชันไคลเอนต์ต้องตรวจสอบว่ามี "xyz" คุณสมบัติอยู่ในข้อความ JSON และขึ้นอยู่กับผลการเรียกใช้ usecase เฉพาะ

สำหรับความต้องการนี้การแปลงข้อความ JSON ทั้งหมดเป็นวัตถุที่ฟังดูแพงไปหน่อยสำหรับฉันและด้วยเหตุนี้คำถามนี้

มีภาษาแบบสอบถาม JSON มาตรฐานเหมือนที่เรามีสำหรับ XML หรือไม่ ถ้าใช่สิ่งที่ดีที่สุดรู้การใช้ภาษาแบบสอบถามนี้ในจาวา

FYI: การเปลี่ยนหรือเพิ่มบริการใหม่ทางฝั่งเซิร์ฟเวอร์ไม่ใช่ตัวเลือก


ในจาวาสคริปต์หากการตอบสนองถูกส่งด้วยส่วนหัวที่ถูกต้อง (แอปพลิเคชัน / json) การตอบสนอง JSON จะเป็นวัตถุจาวาสคริปต์ นั่นคือสิ่งที่คุณต้องการหรือ ฉันไม่แน่ใจจากคำถามของคุณ
Florian Margaine

@ Florian ฉันเห็นด้วยให้ฉันอัปเดตคำถามของฉันและทำให้เป็นจาวาเฉพาะ
ฟาร์ม

ถ้าอย่างนั้นฉันเดาว่าคุณลองjson.org/java แล้วเหรอ? :-)
Florian Margaine

ฉันสงสัยในสิ่งเดียวกัน ทุก Java ห้องสมุดสำหรับ JSON ผมเคยเห็นปรากฏจะเป็นขนาดใหญ่อย่างน่ากลัว; จะมีอะไรตามสายของJSON.getString(json_string, 'foo.22.bar')(สำหรับคุณสมบัติ "บาร์" ในองค์ประกอบที่ 22 ของรายการที่ให้บริการ "foo" ซึ่งมีสตริง)
Izkata

หรือเพื่อหลีกเลี่ยงการวิเคราะห์คำในแต่ละครั้งJSON baz = new JSON(json_string); baz.getString('foo.22.bar');ตัวอย่างเช่น
Izkata

คำตอบ:


6

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

แก้ไขดูhttp://json.org/java

สำหรับความต้องการนี้การแปลงข้อความ JSON ทั้งหมดเป็นวัตถุที่ฟังดูแพงไปหน่อยสำหรับฉันและด้วยเหตุนี้คำถามนี้

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


ฉันอัปเดตคำถามของฉันและทำให้เป็นแบบจาวา
ฟาร์ม

การใช้จาวาสคริปต์ไม่ใช่ตัวเลือกเนื่องจากแอปพลิเคชันไคลเอนต์ทำงานบน Headunit ซึ่งรองรับเฉพาะ LWUIT
ฟาร์ม

2

"วัดอย่าเดา" ใช่การทำให้เป็นอันดับวัตถุและ deserialisation ของฉันมีราคาแพงในทางทฤษฎี แต่อะไรคือเป้าหมายการปฏิบัติงานของคุณ? หากการทำให้เป็นอันดับวัตถุ (de) ไม่ทำให้ประสิทธิภาพของคุณอยู่ในระดับที่ยอมรับไม่ได้ก็ไม่ต้องกังวล :-) กุญแจสำคัญของหลักสูตรคือการรู้ว่าขอบเขตประสิทธิภาพควรเป็นอย่างไร (เช่นเวลาตอบสนองต่อผู้ใช้ใน 2 วินาที) และเพื่อวัดแต่ละส่วนของวงจรคำขอ / ตอบกลับ

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