nlohmann/json لـ C++: دليل شامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في nlohmann/json: ما هو ولماذا تحتاجه

\n\n

مكتبة nlohmann/json (المعروفة أيضًا باسم JSON for Modern C++) هي واحدة من أشهر وأسهل المكتبات للتعامل مع JSON في لغة C++. تم تطويرها بواسطة Niels Lohmann ويتم توزيعها بموجب ترخيص MIT. الهدف الرئيسي للمكتبة هو توفير واجهة بديهية وحديثة وآمنة لتحليل وإنشاء وتعديل وتسلسل بيانات JSON.

\n\n

لماذا تحتاجها؟ في التطوير الحديث، JSON (JavaScript Object Notation) هو المعيار الفعلي لتبادل البيانات بين الخدمات، وتخزين التكوينات، والعمل مع API وتطبيقات الويب. لا تحتوي مكتبة C++ القياسية على دعم مدمج لـ JSON، لذلك يضطر المطورون إما إلى كتابة محللات خاصة بهم أو استخدام حلول خارجية. تحل nlohmann/json هذه المشكلة من خلال تقديم:

\n\n
    \n
  • بناء جملة بسيط — العمل مع JSON يشبه العمل مع حاويات STL المدمجة (std::map، std::vector).
  • \n
  • أمان الأنواع — تحويل تلقائي بين أنواع C++ و JSON.
  • \n
  • أداء عالي — المكتبة محسّنة للسرعة والذاكرة.
  • \n
  • توافق عبر المنصات — تعمل على Windows، Linux، macOS، وكذلك على الأنظمة المضمنة.
  • \n
  • دعم كامل لمعيار JSON — بما في ذلك الكائنات المتداخلة، المصفوفات، null، القيم المنطقية، الأرقام والسلاسل النصية.
  • \n
\n\n

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

\n\n

تثبيت nlohmann/json

\n\n

على عكس Python (حيث يُستخدم pip)، في C++ يمكن تثبيت المكتبات بعدة طرق. دعنا نستعرض أشهرها.

\n\n

الطريقة 1: Header-only (موصى بها للمبتدئين)

\n

مكتبة nlohmann/json هي header-only — وهذا يعني أنه لاستخدامها، يكفي تنزيل ملف الرأس json.hpp وإدراجه في المشروع. لا حاجة إلى أي ترجمة أو ربط أو تثبيت تبعيات.

\n
    \n
  1. قم بتنزيل ملف json.hpp من المستودع الرسمي (أحدث إصدار هو v3.11.3).
  2. \n
  3. ضعه في مجلد مشروعك، على سبيل المثال، include/json.hpp.
  4. \n
  5. في الكود المصدري، قم بتضمينه: #include "json.hpp".
  6. \n
\n\n

الطريقة 2: التثبيت عبر مديري الحزم

\n

إذا كنت تستخدم أنظمة بناء حديثة، يمكنك تثبيت المكتبة عبر مدير الحزم:

\n
    \n
  • vcpkg (Windows، Linux، macOS): vcpkg install nlohmann-json
  • \n
  • Conan: conan install nlohmann_json/3.11.3@
  • \n
  • Homebrew (macOS): brew install nlohmann-json
  • \n
  • APT (Ubuntu/Debian): sudo apt install nlohmann-json3-dev
  • \n
\n\n

الطريقة 3: CMake FetchContent

\n

للمشاريع التي تستخدم CMake، يمكن تنزيل المكتبة تلقائيًا أثناء البناء:

\n
include(FetchContent)\nFetchContent_Declare(\n  json\n  GIT_REPOSITORY https://github.com/nlohmann/json.git\n  GIT_TAG v3.11.3\n)\nFetchContent_MakeAvailable(json)\ntarget_link_libraries(your_target PRIVATE nlohmann_json::nlohmann_json)
\n\n

بداية سريعة: المثال الأول

\n\n

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

\n\n
#include <iostream>\n#include "json.hpp"\n\nusing json = nlohmann::json;\n\nint main() {\n    // 1. إنشاء كائن JSON\n    json person = {\n        {"name", "Alice"},\n        {"age", 30},\n        {"is_student", false},\n        {"skills", {"C++", "Python", "JSON"}},\n                    

توصيات