هل يمكن أن يكون الصفيف من المستوى الأعلى json-text؟

StackOverflow https://stackoverflow.com/questions/3833299

  •  26-09-2019
  •  | 
  •  

سؤال

لكل نقاش في هذا المنشور: JSON-Conversion-in-JavaScript

هل كانت مفيدة؟

المحلول

نعم ، صفيف قانوني مثل json-text من المستوى الأعلى.

هناك ثلاث وثائق قياسية تحدد JSON: RFC 4627, RFC 7159 (الذي يفترض RFC 4627) ، و ECMA-404. فهي تختلف في أي عناصر المستوى الأعلى تسمح بها ، ولكن جميعها تسمح لكائن أو صفيف كعنصر المستوى الأعلى.

  • RFC 4627: كائن أو صفيف.
    "نص JSON هو كائن أو صفيف تسلسلي."
  • RFC 7159: أي قيمة JSON.
    "نص JSON هو قيمة تسلسلية."
  • ECMA-404: أي قيمة JSON.
    "نص JSON هو سلسلة من الرموز المميزة التي تم تشكيلها من نقاط رمز Unicode تتوافق مع قواعد القيمة JSON."

نصائح أخرى

نعم, ، ولكن يجب أن تفكر في جعل جذر كائن بدلاً من ذلك في بعض السيناريوهات ، بسبب اختطاف json. هذا هو ثغرة أمنية للكشف عن المعلومات بناءً على تجاوز مُنشئ الصفيف في JavaScript.

هذا من مواصفات ECMASCRIPT.

JSONText :
    JSONValue

JSONValue :
    JSONNullLiteral 
    JSONBooleanLiteral 
    JSONObject 
    JSONArray 
    JSONString 
    JSONNumber

نعم ، جربها هنا.

http://www.jsonlint.com/

ووضع في [{}

هناك بعض الالتباس ، الذي شوهد في التعليقات الأخرى. يتيح نوع الوسائط "Application/JSON" كائنًا أو صفيفًا فقط في المستوى الأعلى لـ JSON-Text ، لكل JSON RFC. ومع ذلك ، بالنسبة إلى المحلل ، فإن أي قيمة JSON مقبولة ، كما هو موضح في مواصفات ECMASCRIPT.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top