Bitbybit Docs
    Preparing search index...

    Class JSONBitByBit

    قراءة القيم داخل بيانات JSON وتغييرها. يتبع مسار مثل $.parts[0].name صيغة JSONPath: $ هو الجذر، و .name يدخل إلى خاصية، و [0] إلى مدخل قائمة، و ..name يبحث على أي عمق. تستعلم الدوال هنا وتضبط وتسرد حسب المسار، وتعمل على خصائص مفردة وتعاين البيانات عبر التطبيق؛ ويعود كل تغيير كنسخة معدلة، ويبقى المدخل كما هو.

    Index

    Constructors

    create

    • يعطي كائنا فارغا جديدا بلا خصائص، نقطة بداية لـ setValueOnProp و setValue.

      Returns any

      كائن فارغ

      const settings = bitbybit.json.createEmpty();
      const withWidth = bitbybit.json.setValueOnProp({ json: settings, property: "width", value: 10 });

    jsonpath

    • يجد كل قيمة في JSON يطابقها تعبير JSONPath ويعطيها كقائمة، حتى عندما لا توجد سوى قيمة واحدة.

      $.parts[*].name يسرد كل أسماء الأجزاء و $..radius كل نصف قطر على أي عمق؛ مرشحات JSONPath بين أقواس مربعة تضيّق التطابقات بشرط.

      Parameters

      • inputs: QueryDto

        كائن JSON وتعبير JSONPath

      Returns any

      القيم المطابقة كقائمة

      const names = bitbybit.json.query({ json: model, query: "$.parts[*].name" });
      
    • يعيّن الخاصية prop إلى value على كل كائن يبلغه تعبير JSONPath، معطيا نسخة معدلة من JSON.

      path يشير إلى الكائنات الأصل، و prop يسمي الخاصية عليها: path: "$.parts[*]", prop: "visible" يغير كل جزء. القيمة التي ليست كائنا ترمي خطأ.

      Parameters

      • inputs: SetValueDto

        كائن JSON والمسار إلى الكائنات الأصل واسم الخاصية والقيمة

      Returns any

      النسخة المعدلة

      const hidden = bitbybit.json.setValue({ json: model, path: "$.parts[*]", prop: "visible", value: false });
      
    • يطبق عدة تغييرات setValue دفعة واحدة: المدخل i من paths و props و values هو تغيير واحد، يُطبق بالترتيب على نسخة من JSON.

      Parameters

      • inputs: SetValuesOnPathsDto

        كائن JSON والقوائم المتطابقة من المسارات وأسماء الخصائص والقيم

      Returns any

      النسخة المعدلة

      const updated = bitbybit.json.setValuesOnPaths({ json: model, paths: ["$", "$.parts[0]"], props: ["name", "visible"], values: ["Assembly", false] });
      
    • يسرد مسارات كل قيمة يطابقها تعبير JSONPath، كل منها كمسار كامل من الجذر مثل $['parts'][0]['name']، بدلا من القيم نفسها.

      Parameters

      • inputs: PathsDto

        كائن JSON وتعبير JSONPath

      Returns any

      مسارات التطابقات، كقائمة من السلاسل النصية

      const where = bitbybit.json.paths({ json: model, query: "$..radius" });
      

    preview

    • يسلم JSON إلى التطبيق الجاري لعرضه وعرض حفظه كملف؛ يقرر التطبيق شكل المعاينة، ولا يحدث شيء عندما تكون القيمة فارغة.

      Parameters

      • inputs: JsonDto

        كائن JSON المراد عرضه

      Returns void

      لا شيء

      bitbybit.json.previewAndSaveJson({ json: model });
      
    • يسلم JSON إلى التطبيق الجاري لعرضه؛ يقرر التطبيق شكل المعاينة، ولا يحدث شيء عندما تكون القيمة فارغة.

      Parameters

      • inputs: JsonDto

        كائن JSON المراد عرضه

      Returns void

      لا شيء

      bitbybit.json.previewJson({ json: model });
      

    props

    • يعيّن خاصية واحدة من المستوى الأعلى لكائن JSON إلى قيمة، معطيا نسخة معدلة؛ يبقى المدخل كما هو والخاصية التي لم تكن موجودة تُضاف.

      Parameters

      Returns any

      النسخة المعدلة

      const updated = bitbybit.json.setValueOnProp({ json: settings, property: "width", value: 20 });
      
    • يجد أول كائن في قائمة تساوي خاصيته القيمة المعطاة، بمقارنة بالمساواة الصارمة، ويعيده؛ عدم وجود تطابق يعطي undefined.

      لأي شيء يتجاوز خاصية واحدة، استخدم query مع مرشح.

      Parameters

      Returns any

      أول كائن مطابق، أو undefined

      const part = bitbybit.json.getJsonFromArrayByFirstPropMatch({ jsonArray: parts, property: "name", match: "lid" });
      
    • يقرأ خاصية واحدة من المستوى الأعلى لكائن JSON؛ الخاصية المفقودة تعطي undefined.

      Parameters

      Returns any

      قيمة الخاصية

      const width = bitbybit.json.getValueOnProp({ json: settings, property: "width" });
      

    transform

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

      Parameters

      • inputs: StringifyDto

        القيمة المراد كتابتها كنص

      Returns string

      نص JSON

      const text = bitbybit.json.stringify({ json: { width: 10, points: [[0, 0, 0], [1, 1, 1]] } });
      
    • يحول نص JSON إلى القيمة التي يصفها، كما تفعل JSON.parse؛ النص الذي ليس JSON صالحا يرمي خطأ.

      Parameters

      Returns any

      القيمة المحللة

      const points = bitbybit.json.parse({ text: "[[0, 0, 0], [1, 1, 1]]" });