سؤال

هل يمكنني استخدام التعليقات داخل ملف JSON؟ إذا كان الأمر كذلك ، كيف؟

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

المحلول

رقم.

يجب أن تكون JSON جميعها بيانات ، وإذا قمت بتضمين تعليق ، فسيكون ذلك بيانات أيضًا.

يمكن أن يكون لديك عنصر بيانات مخصص يسمى "_comment" (أو شيء من هذا القبيل) التي سيتم تجاهلها بواسطة التطبيقات التي تستخدم بيانات JSON.

من المحتمل أن تكون أفضل من التعليق في العمليات التي تنشئ/تستقبل JSON ، حيث من المفترض أن تعرف ما ستكون عليه بيانات JSON مقدمًا ، أو على الأقل هيكلها.

ولكن إذا قررت:

{
   "_comment": "comment text goes here...",
   "glossary": {
      "title": "example glossary",
      "GlossDiv": {
         "title": "S",
         "GlossList": {
            "GlossEntry": {
               "ID": "SGML",
               "SortAs": "SGML",
               "GlossTerm": "Standard Generalized Markup Language",
               "Acronym": "SGML",
               "Abbrev": "ISO 8879:1986",
               "GlossDef": {
                  "para": "A meta-markup language, used to create markup languages such as DocBook.",
                  "GlossSeeAlso": ["GML", "XML"]
               },
               "GlossSee": "markup"
            }
         }
      }
   }
}

نصائح أخرى

رقم, ، تعليقات النموذج //… أو /*…*/ غير مسموح به في JSON. تعتمد هذه الإجابة على:

  • http://www.json.org
  • RFC 4627: ال application/json نوع الوسائط لتدوين كائن JavaScript (JSON)
  • RFC 7159 تنسيق تبادل بيانات كائن JavaScript (JSON) - الفطائر: 4627 ، 7158

قم بتضمين التعليقات إذا اخترت ؛ قم بتجريدهم باستخدام Minifier قبل تحليل أو إرسال.

لقد أطلقت للتو json.minify () الذي يخرج التعليقات والمساحة البيضاء من كتلة من JSON ويجعلها صالحة JSON التي يمكن تحليلها. لذلك ، قد تستخدمه مثل:

JSON.parse(JSON.minify(my_str));

عندما أصدرته ، حصلت على رد فعل عنيف كبير من الناس الذين لا يوافقون على فكرة ذلك ، لذلك قررت أن أكتب منشورًا شاملاً عن السبب في ذلك التعليقات منطقية في JSON. ويشمل هذا التعليق البارز من منشئ JSON:

لنفترض أنك تستخدم JSON للحفاظ على ملفات التكوين ، والتي ترغب في التعليق عليها. المضي قدما وأدخل جميع التعليقات التي تحبها. ثم قم بتنشيطه من خلال JSMin قبل تسليمه إلى محلل JSON الخاص بك. - دوغلاس كروكفورد ، 2012

نأمل أن يكون هذا مفيدًا لأولئك الذين يختلفون مع السبب json.minify () يمكن أن يكون مفيدا.

تمت إزالة التعليقات من JSON حسب التصميم.

لقد أزلت التعليقات من JSON لأنني رأيت أشخاصًا يستخدمونها للحفاظ على توجيهات التحليل ، وهي ممارسة من شأنها أن تدمر التشغيل البيني. أعلم أن الافتقار إلى التعليقات يجعل بعض الناس حزينًا ، لكن لا ينبغي أن يكون كذلك.

لنفترض أنك تستخدم JSON للحفاظ على ملفات التكوين ، والتي ترغب في التعليق عليها. المضي قدما وأدخل جميع التعليقات التي تحبها. ثم قم بتنشيطه من خلال JSMin قبل تسليمه إلى محلل JSON الخاص بك.

مصدر: البيان العام من قبل دوغلاس كروكفورد على G+

إخلاء المسئولية: ضمانك باطل

كما أشير ، يستفيد هذا الاختراق من تنفيذ المواصفات. لن يفهم جميع محلات JSON هذا النوع من JSON. دفق المحلات على وجه الخصوص سوف يختنق.

إنه فضول مثير للاهتمام ، لكنك يجب ألا تستخدمه حقًا لأي شيء على الإطلاق. فيما يلي الإجابة الأصلية.


لقد وجدت القليل من الاختراق الذي يسمح لك بوضع التعليقات في ملف JSON لن يؤثر على التحليل ، أو تغيير البيانات التي يتم تمثيلها بأي شكل من الأشكال.

يبدو أنه عند إعلان كائن حرفي ، يمكنك تحديد قيمتين بنفس المفتاح ، ويأخذ آخرها الأسبقية. صدق أو لا تصدق ، اتضح أن محلفي JSON يعملون بنفس الطريقة. حتى نتمكن من استخدام هذا لإنشاء تعليقات في المصدر JSON والتي لن تكون موجودة في تمثيل كائن محدود.

({a: 1, a: 2});
// => Object {a: 2}
Object.keys(JSON.parse('{"a": 1, "a": 2}')).length; 
// => 1

إذا قمنا بتطبيق هذه التقنية ، فقد يبدو ملف JSON الخاص بك هكذا:

{
  "api_host" : "The hostname of your API server. You may also specify the port.",
  "api_host" : "hodorhodor.com",

  "retry_interval" : "The interval in seconds between retrying failed API calls",
  "retry_interval" : 10,

  "auth_token" : "The authentication token. It is available in your developer dashboard under 'Settings'",
  "auth_token" : "5ad0eb93697215bc0d48a7b69aa6fb8b",

  "favorite_numbers": "An array containing my all-time favorite numbers",
  "favorite_numbers": [19, 13, 53]
}

الرمز أعلاه هو صالح JSON. إذا قمت بتحليلها ، فستحصل على كائن مثل هذا:

{
    "api_host": "hodorhodor.com",
    "retry_interval": 10,
    "auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
    "favorite_numbers": [19,13,53]
}

مما يعني أنه لا يوجد أي أثر للتعليقات ، ولن يكون لديهم آثار جانبية غريبة.

اختراق سعيد!

JSON لا تدعم التعليقات. كما لم يكن المقصود استخدامه في ملفات التكوين حيث ستكون هناك حاجة إلى التعليقات.

HJSON هو تنسيق ملف التكوين للبشر. بناء جملة مريح ، أخطاء أقل ، المزيد من التعليقات.

Hjson intro

نرى hjson.org بالنسبة إلى JavaScript و Java و Python و PHP و Rust و Go و Ruby و C#.

النظر في استخدام YAML. إنها ما يقرب من مجموعة من JSON (كل JSON ساري المفعول فعليًا هو YAML) ويسمح بالتعليقات.

لا يمكنك. على الأقل هذه تجربتي من لمحة سريعة json.org.

لدى JSON بناء الجملة الخاص به في تلك الصفحة. لا يوجد أي ملاحظة حول التعليقات.

يجب أن تكتب مخطط JSON في حين أن. يعد JSON Schema حاليًا مواصفات مسودة إنترنت مقترحة. إلى جانب الوثائق ، يمكن أيضًا استخدام المخطط للتحقق من بيانات JSON الخاصة بك.

مثال:

{
    "description":"A person",
    "type":"object",
    "properties":
        {
            "name":
                {
                    "type":"string"
                },
            "age":
                {
                    "type":"integer",
                    "maximum":125
                }
        }
}

يمكنك توفير الوثائق باستخدام ملف وصف سمة المخطط.

إذا كنت تستخدم جاكسون بصفتك محلل JSON الخاص بك ، فإن هذه هي الطريقة التي تمكّنها من السماح بالتعليقات:

ObjectMapper mapper = new ObjectMapper().configure(Feature.ALLOW_COMMENTS, true);

ثم يمكنك الحصول على تعليقات مثل هذا:

{
  key: "value" // Comment
}

ويمكنك أيضًا الحصول على تعليقات تبدأ # عن طريق الإعداد:

mapper.configure(Feature.ALLOW_YAML_COMMENTS, true);

ولكن بشكل عام (كما تم الرد عليه من قبل) لا تسمح المواصفات بالتعليقات.

التعليقات ليست معيارًا رسميًا. على الرغم من أن بعض المحللين يدعمون التعليقات على غرار C. واحد أستخدمه هو JSONCPP. في الأمثلة هناك هذا:

// Configuration options
{
    // Default encoding for text
    "encoding" : "UTF-8",

    // Plug-ins loaded at start-up
    "plug-ins" : [
        "python",
        "c++",
        "ruby"
        ],

    // Tab indent size
    "indent" : { "length" : 3, "use_space": true }
}

jsonlint لا يتحقق من هذا. لذا فإن التعليقات هي امتداد محلل خاص وليست قياسية.

محلل آخر هو JSON5.

بديل لـ JSON توم.

بديل آخر JSONC.

هذا ما وجدته في توثيق Google Firebase يتيح لك وضع التعليقات في JSON:

{
  "//": "Some browsers will use this to enable push notifications.",
  "//": "It is the same for all projects, this is not your project's sender ID",
  "gcm_sender_id": "1234567890"
}

إذا كان الملف النصي الخاص بك ، وهو سلسلة JSON ، سيقرأه بعض البرامج ، فما مدى صعوبة تجريد تعليقات نمط C أو C ++ قبل استخدامه؟

إجابه: سيكون بطانة واحدة. إذا قمت بذلك ، فيمكن استخدام ملفات JSON كملفات تكوين.

إذا كنت تستخدم مكتبة Newtonsoft.json مع ASP.NET لقراءة/Deserialize ، يمكنك استخدام التعليقات في محتوى JSON:

// "الاسم": "سلسلة"

// "ID": int

أو

/* هذا ال

مثال التعليق */

ملاحظة: يتم دعم تعليقات الخط الواحد فقط مع 6+ إصدارات من Newtonsoft JSON.

ملاحظة إضافية للأشخاص الذين لا يستطيعون التفكير خارج الصندوق: يمكنني استخدام تنسيق JSON للإعدادات الأساسية في تطبيق الويب ASP.NET الذي قمت به. قرأت الملف ، وتحويله إلى كائن الإعدادات باستخدام مكتبة Newtonsoft واستخدمه عند الضرورة.

أفضل كتابة تعليقات حول كل إعداد فردي في ملف JSON نفسه ، وأنا لا أهتم حقًا بسلامة تنسيق JSON طالما أن المكتبة التي أستخدمها على ما يرام.

أعتقد أن هذه طريقة "أسهل في الاستخدام/الفهم" من إنشاء إعدادات منفصلة. Readme "وشرح الإعدادات الموجودة فيه.

إذا كان لديك مشكلة في هذا النوع من الاستخدام ؛ آسف ، الجني خارج المصباح. سيجد الناس استخدامات أخرى لتنسيق JSON ، ولا يوجد شيء يمكنك فعله حيال ذلك.

تتمثل الفكرة وراء JSON في توفير تبادل بيانات بسيط بين التطبيقات. هذه عادة ما تعتمد على الويب واللغة هي جافا سكريبت.

ومع ذلك ، فإنه لا يسمح حقًا بتعليقات على هذا النحو ، فإن تمرير تعليق كأحد أزواج الاسم/القيمة في البيانات سيعمل بالتأكيد ، على الرغم من أن هذه البيانات ستحتاج بوضوح إلى تجاهلها أو التعامل معها على وجه التحديد بواسطة رمز التحليل.

كل ما قيل له ، لا يعني أن ملف JSON يجب أن يحتوي على تعليقات بالمعنى التقليدي. يجب أن تكون فقط البيانات.

ألق نظرة على موقع JSON لمزيد من التفاصيل.

أنا فقط أواجه هذا لملفات التكوين. لا أريد استخدام XML (مطول ، بيانيًا ، قبيحًا ، يصعب القراءة) ، أو تنسيق "INI" (بدون تسلسل هرمي ، لا معيار حقيقي ، إلخ) أو تنسيق خصائص "Java" (مثل .ini).

يمكن لـ JSON أن تفعل كل ما يمكنهم فعله ، لكنه أقل مطوّلة وأكثر قابلية للقراءة البشرية - والحلويات سهلة ومنتشرة في العديد من اللغات. إنها مجرد شجرة من البيانات. لكن التعليقات خارج النطاق هي ضرورة في كثير من الأحيان لتوثيق التكوينات "الافتراضية" وما شابه. لا تكون التكوينات "مستندات كاملة" أبدًا ، ولكن أشجار البيانات المحفوظة التي يمكن أن تكون قابلة للقراءة البشرية عند الحاجة.

أعتقد أنه يمكن للمرء استخدامه "#": "comment", ، لـ "صالح" JSON.

لا تدعم JSON التعليقات أصليًا ، ولكن يمكنك عمل وحدة فك الترميز الخاصة بك أو على الأقل معالجًا مسبقًا لتجريد التعليقات ، فهذا أمر جيد تمامًا (طالما أنك تتجاهل التعليقات ولا تستخدمها لتوجيه كيفية معالجة تطبيقك لبيانات JSON ).

JSON ليس لديه تعليقات. يجب على تشفير JSON عدم إخراج التعليقات. قد يقبل وحدة فك ترميز JSON التعليقات وتجاهلها.

يجب ألا تستخدم التعليقات لنقل أي شيء ذي معنى. هذا ما هو JSON ل.

CF: دوغلاس كروكفورد ، مؤلف كتاب JSON Spec.

ذلك يعتمد على مكتبة JSON الخاصة بك. json.net يدعم تعليقات على غرار JavaScript ، /* commment */.

نرى سؤال آخر في التدفق مكدس.

JSON لها معنى كبير لملفات التكوين وغيرها من الاستخدامات المحلية لأنها في كل مكان ولأنها أبسط بكثير من XML.

إذا كان لدى الأشخاص أسباب قوية ضد تعليقات في JSON عند توصيل البيانات (سواء كانت صالحة أم لا) ، فربما يمكن تقسيم JSON إلى قسمين:

  • JSON-COM: JSON على السلك ، أو القواعد التي تنطبق عند توصيل بيانات JSON.
  • JSON-DOC: مستند JSON ، أو JSON في الملفات أو محليًا. القواعد التي تحدد وثيقة JSON صالحة.

سوف تسمح JSON-DOC بالتعليقات ، وقد توجد اختلافات طفيفة أخرى مثل التعامل مع المسافة البيضاء. يمكن أن يتحول المحللون بسهولة من مواصفات إلى أخرى.

فيما يتعلق ملاحظة صنعها دوغلاس كروكفورد حول هذه القضايا (المشار إليها من قبل artur czajka)

لنفترض أنك تستخدم JSON للحفاظ على ملفات التكوين ، والتي ترغب في التعليق عليها. المضي قدما وأدخل جميع التعليقات التي تحبها. ثم قم بتنشيطه من خلال JSMin قبل تسليمه إلى محلل JSON الخاص بك.

نحن نتحدث عن مشكلة ملف تكوين عام (لغة/منصة متقاطعة) ، وهو يجيب بأداة محددة JS!

من المؤكد أنه يمكن تنفيذ minify محدد JSON بأي لغة ، ولكن توحيد هذا حتى يصبح في كل مكان عبر المحللين بجميع اللغات والمنصات حتى يتوقف الناس عن إضاعة وقتهم في عدم وجود ميزة لأن لديهم حالات استخدام جيدة لها ، وتبحث عن المشكلة في المنتديات عبر الإنترنت ، وجعل الأشخاص الذين يخبرونهم بأنها فكرة سيئة أو تقترح أنه من السهل تنفيذ تعليقات تجريد من الملفات النصية.

القضية الأخرى هي قابلية التشغيل البيني. لنفترض أن لديك مكتبة أو واجهة برمجة تطبيقات أو أي نوع من النظام الفرعي الذي يحتوي على بعض ملفات التكوين أو البيانات المرتبطة به. وسيتم الوصول إلى هذا النظام الفرعي من لغات مختلفة. ثم هل تتجول في إخبار الناس: بالمناسبة لا تنسَ تجريد التعليقات من ملفات JSON قبل نقلهم إلى المحلل!

تتيح لك مجموعة أدوات Dojo Toolkit JavaScript (على الأقل اعتبارًا من الإصدار 1.4) ، تضمين تعليقات في JSON الخاصة بك. يمكن أن تكون التعليقات من /* */ صيغة. تستهلك مجموعة أدوات Dojo JSON عبر dojo.xhrGet() مكالمة.

قد تعمل مجموعات أدوات JavaScript الأخرى بشكل مشابه.

يمكن أن يكون ذلك مفيدًا عند تجربة هياكل بيانات بديلة (أو حتى قوائم البيانات) قبل اختيار الخيار النهائي.

كما ترى JSON5 يمكنك تضمين التعليقات.


JSON5 هو امتداد مقترح لـ JSON هذا يهدف إلى تسهيل على البشر الكتابة والصيانة باليد. يقوم بذلك عن طريق إضافة بعض ميزات بناء الجملة الدنيا مباشرة من ECMASCRIPT 5.

JSON ليس بروتوكول مؤطر. إنها تنسيق خالي من اللغة. لذلك لم يتم تعريف تنسيق التعليق لـ JSON.

كما اقترح الكثير من الناس ، هناك بعض الحيل ، على سبيل المثال ، مفاتيح مكررة أو مفتاح محدد _comment التي يمكنك استخدامها. الأمر متروك لك.

أنت يستطيع لديك تعليقات في JSONP, ، ولكن ليس في نقي json. لقد أمضيت ساعة فقط في محاولة لجعل برنامجي يعمل مع هذا المثال من Highcharts: http://www.highcharts.com/samples/data/jsonp.php؟filename=aapl-c.json&callback=؟

إذا اتبعت الرابط ، فسترى

?(/* AAPL historical OHLC data from the Google Finance API */
[
/* May 2006 */
[1147651200000,67.79],
[1147737600000,64.98],
...
[1368057600000,456.77],
[1368144000000,452.97]
]);

نظرًا لأنني كان لدي ملف مشابه في مجلد محلي ، لم تكن هناك مشاكل مع سياسة الأصل من نفس, ، لذلك قررت استخدام نقي JSON ... وبالطبع ، $.getJSON كان يفشل بصمت بسبب التعليقات.

في النهاية ، أرسلت للتو طلب HTTP يدويًا إلى العنوان أعلاه وأدركت أن نوع المحتوى كان text/javascript منذ ذلك الحين ، يعيد JSONP جافا سكريبت النقي. في هذه الحالة تعليقات مسموح به. لكن طلبي أعاد المحتوى application/json, ، لذلك اضطررت لإزالة التعليقات.

اعتاد JSON دعم التعليقات ، لكن تم إساءة معاملتهم وإزالتها من المعيار.

من خالق JSON:

لقد أزلت التعليقات من JSON لأنني رأيت أشخاصًا يستخدمونها للحفاظ على توجيهات التحليل ، وهي ممارسة من شأنها أن تدمر التشغيل البيني. أعلم أن الافتقار إلى التعليقات يجعل بعض الناس حزينًا ، لكن لا ينبغي أن يكون كذلك. - دوغلاس كروكفورد ، 2012

موقع JSON الرسمي في json.org. يتم تعريف JSON على أنه أ اساسي بواسطة ECMA International. هناك دائمًا عملية عريضة لإعادة مراجعة المعايير. من غير المحتمل أن تتم إضافة التعليقات التوضيحية إلى معيار JSON لعدة أسباب.

JSON By Design هو بديل سهل الهندسة (تحليل الإنسان) لـ XML. تم تبسيطه حتى إلى درجة أن التعليقات التوضيحية غير ضرورية. إنها ليست لغة ترميز. الهدف هو الاستقرار و interoperablilty.

يمكن لأي شخص يفهم علاقة "HAS -A" لتوجه الكائن أن يفهم أي بنية JSON - وهذا هو النقطة الأساسية. إنه مجرد رسم بياني حكيمي موجه (DAG) مع علامات العقدة (أزواج المفاتيح/القيمة) ، وهو بنية بيانات عالمية قريبة.

قد يكون هذا التعليق التوضيحي المطلوب فقط "// هذه علامات DAG". يمكن أن تكون الأسماء الرئيسية مفيدة على النحو المطلوب ، مما يتيح القوس الدلالي التعسفي.

يمكن لأي منصة تحليل JSON مع بضعة أسطر من التعليمات البرمجية. تتطلب XML مكتبات OO معقدة غير قابلة للحياة على العديد من المنصات.

التعليقات التوضيحية ستجعل JSON أقل قابلية للتشغيل. ببساطة لا يوجد شيء آخر لإضافته ، إلا إذا ما تحتاجه حقًا هو لغة الترميز (XML) ، ولا تهتم إذا تم تحليل بياناتك المستمرة بسهولة.

هذا ال "هل تستطيع" سؤال. وهنا أ "نعم" إجابه.

لا ، يجب ألا تستخدم أعضاء الكائنات المكررة لأشياء من بيانات القناة الجانبية في ترميز JSON. (انظر "يجب أن تكون الأسماء داخل كائن فريدة من نوعها" في RFC).

ونعم ، يمكنك أدخل التعليقات حول JSON, ، والتي يمكنك تحليلها.

ولكن إذا كنت تريد طريقة لإدخال واستخراج بيانات القناة الجانبية التعسفية إلى JSON صالحة ، فإليك إجابة. نحن نستفيد من التمثيل غير الوني للبيانات في ترميز JSON. هذا مسموح به* في القسم الثاني من RFC تحت "المساحة البيضاء مسموح بها قبل أو بعد أي من الشخصيات الهيكلية الستة".

*ينص RFC فقط على "المساحة البيضاء مسموح بها قبل أو بعد أي من الشخصيات الهيكلية الستة" ، لا تذكر صراحة الأوتار والأرقام و "False" و "True" و "Null". يتم تجاهل هذا الإغفال في جميع التطبيقات.


أولاً ، قم بإضفاء الطابع الكنسي على JSON عن طريق إصلاحه:

$jsonMin = json_encode(json_decode($json));

ثم قم بتشفير تعليقك بالثنائي:

$hex = unpack('H*', $comment);
$commentBinary = base_convert($hex[1], 16, 2);

ثم steg الخاص بك الثنائي:

$steg = str_replace('0', ' ', $commentBinary);
$steg = str_replace('1', "\t", $steg);

ها هو إخراجك:

$jsonWithComment = $steg . $jsonMin;

نحن نستخدم strip-json-comments لمشروعنا. إنه يدعم شيئًا مثل:

/*
 * Description 
*/
{
    // rainbows
    "unicorn": /* ❤ */ "cake"
}

ببساطة npm install --save strip-json-comments لتثبيته واستخدامه مثل:

var strip_json_comments = require('strip-json-comments')
var json = '{/*rainbows*/"unicorn":"cake"}';
JSON.parse(strip_json_comments(json));
//=> {unicorn: 'cake'}

لقطع عنصر JSON إلى أجزاء أقوم بإضافة خطوط "تعليق وهمية":

{

"#############################" : "Part1",

"data1"             : "value1",
"data2"             : "value2",

"#############################" : "Part2",

"data4"             : "value3",
"data3"             : "value4"

}

هناك حل جيد (اختراق) ، وهو JSON صالح. فقط اجعل نفس المفتاح مرتين (أو أكثر). فمثلا:

{
  "param" : "This is the comment place",
  "param" : "This is value place",
}

لذلك سوف يفهم JSON هذا على أنه:

{
  "param" : "This is value place",
}

يريد مؤلف كتاب JSON أن ندرج تعليقات في JSON ، ولكن تجريدها قبل تحليلها (انظر حلقة الوصل قدمه مايكل بور). إذا كان يجب أن يكون لدى JSON تعليقات ، فلماذا لا تقوم بتوحيدها ، والسماح لمحلل JSON بالوظيفة؟ أنا لا أتفق مع المنطق هناك ، ولكن ، للأسف ، هذا هو المعيار. يعد استخدام حل YAML كما اقترح الآخرين جيدًا ، لكنه يتطلب تبعية المكتبة.

إذا كنت ترغب في تجريد التعليقات ، ولكن لا تريد أن يكون لديك تبعية للمكتبة ، فإليك حل من خطين ، يعمل مع تعليقات C ++ ، ولكن يمكن تكييفها مع الآخرين:

var comments = new RegExp("//.*", 'mg');
data = JSON.parse(fs.readFileSync(sample_file, 'utf8').replace(comments, ''));

لاحظ أنه لا يمكن استخدام هذا الحل إلا في الحالات التي يمكنك من خلالها التأكد من أن بيانات JSON لا تحتوي على بادئ التعليق ، على سبيل المثال ('//').

هناك طريقة أخرى لتحقيق تحليل JSON ، وتجريد التعليقات ، وعدم وجود مكتبة إضافية ، وهي تقييم JSON في مترجم JavaScript. التحذير مع هذا النهج ، بالطبع ، هو أنك تريد فقط تقييم البيانات غير الملوثة (لا يوجد مدخلات المستخدم غير الموثوق بها). فيما يلي مثال على هذا النهج في Node.js - تحذير آخر ، فإن المثال التالي سيقرأ فقط البيانات مرة واحدة وبعد ذلك سيتم تخزينه مؤقتًا:

data = require(fs.realpathSync(doctree_fp));

تنهد. لماذا لا تضيف فقط حقول ، على سبيل المثال

{
    "note1" : "This demonstrates the provision of annotations within a JSON file",
    "field1" : 12,
    "field2" : "some text",

    "note2" : "Add more annotations as necessary"
}

فقط تأكد من أن أسماء "Notex" لا تتعارض مع أي حقول حقيقية.

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