אתמול בזמן שניסיתי לדבג אפליקציה שכתבתי אשר עובדת עם JSON כ RPC (אבל לא בפרוטוקול של JSON-RPC) גרם למפרש של שפת רובי לדווח לי שגיאות.
אחרי הרבה ניסיונות חקירה, וקצת עזרה ממאיר שהיה מחובר והחלטתי להציק לו, הוא עלה על הבעיה. כתבתי בטעות את ה JSON שלי עם גרש בודד במקום עם גרש כפול, בעוד שהתקן אומר שמחרוזת בJSON צריכה להיות עם גרש כפול.
העניין הוא שכאשר בדקתי את זה עם JSON Editor שכתבתי עליו כבר, הוא קיבל את המבנה כמו שהוא והציג אותו כראוי. בעקבות זה, החלטתי לדווח על באג, ו4 דקות אחרי שעשיתי את זה, גם מאיר המליץ לעשות אותו הדבר. העניין הוא התשובה שקיבלתי בדיווח, שזה בעצם פיטצ'ר ולא באג, וזה בעקבות כך שיש כל מיני כלים שיוצרים לך JSON לא תקני, ובמקום לשבור את הראש קשה ושדברים לא יעבדו, פשוט סיפקו יכולת להתמודד עם זה, אבל אם נגיד למפרש להיות Strict, אז הוא ידווח על שגיאה בנושא ולא יסכים לקבל אותה.
ועל זה נאמר באג שהפך לפיטצ'ר, או בגרסה המוכרת יותר, "בא לקלל ויצא מברך" 🙂
קרה לי בעבר שעברתי להשתמש בjQuery 1.4.x. פתאום קיבלתי שגיאות parseError. פיירבאג הציג מבנה JSON תקין ואחרי קריאה של changelog הבנתי את הטעות. גם עבור jQuery 1.4 זה פיטצ׳ר ולא באג.
מבחינתם JSON עם גרש בודד לא חוקי.
יש לציין שזה לא מבחינתם, אלא מבחינת הגדרת התחביר (json זה לא js). ההתייחסות היא בפירוש:
A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes.
מתוך http://www.json.org/ .
אכן. תודה על התיקון
😉