شرح قراءة ملف json من الassets في Flutter وعرضه || How to read json file from assets in Flutter project

شرح قراءة ملف json من الassets في Flutter وعرضه

شرح قراءة ملف json من الassets في Flutter وعرضه


في هذه المقالة سوف نشرح معكم كيف تقوم بقراءة ملف json موجود في ال assets الخاصه بك في flutter وكيفية عرض المحتويات من خلال هذا الملف بكل سهوله والامر بسيط جدا وقد سبق وقدمنا لكم نفس هذه الفكرة تماما في تطوير تطبيقات الاندرويد باستخدام لغة java ولكن اليوم سوف يكون من خلال flutter وسوف نقدم لكم اكثر من شكل حتى تكون قادر على فهم الطريقة بصورة اكبر ولكي لا يحدث  معك اي مشاكل مستقبلية باذن الله اثناء تطوير التطبيق الخاص بك والامر بسيط جدا كل ما عليك هو التركيز في المقالة جيدا حتى لا يحدث مشاكل معك .

ما الذي يجعل Flutter فريدًا جدًا؟ تعد القدرة على تطوير تطبيقات عبر الأنظمة الأساسية من قاعدة بيانات واحدة هي الجانب الأول منها. وهذا يعني أنه لا يلزم إنشاء تطبيقات الويب والجوال وسطح المكتب المميزة. باستخدام Flutter ، ظهرت أداة واحدة تسهل إنشاء التطبيقات. 19 أغسطس 2022
العيب الرئيسي لـ Flutter هو لغة التنفيذ ، Dart. إذا كنت تدير بيئات استضافة Google عبر الإنترنت أو الخلفية ، فإن Dart هي إحدى اللغات التي يمكنك استخدامها. وهذا في الأساس كل شيء.


My Frind Json

هذا هو عباره عن ملف الjson الاول الذي سوف نقوم بقرائته في التطبيق الخاص بنا .

My Frind Json

friends.json

{
  "friends": [
    {
    "name": "Ahmed mahmoud",
    "age": "15"
     },
    {
      "name": "Geecoders",
      "age": "22"
    },
    {
      "name": "Carla Sargent",
      "age": "51"
    },
    {
      "name": "Sara Savage",
      "age": "24"
    },
    {
      "name": "Beach Workman",
      "age": "42"
    },
    {
      "name": "Courtney Roberts",
      "age": "26"
    },
    {
      "name": "Abby Hood",
      "age": "28"
    },
    {
      "name": "Belinda Acosta",
      "age": "33"
    }
  ]
}


How to Read Json List file in Flutter


الكود السابق لو تلاحظ انه يبدء ب list ولهذا سوف نحتاج الى الوصول الى اسم ال list في الملف لكي لا يحدث مشاكل ويمكنك استعمال الكود التالي حتى تصل للملف المراد بدون مشاكل وايضا قم بتحديد اسم friends كما هو موضح بالصور لان هذا عباره عن البيانات الموجوده بداخل الملف وهو الذي يحمل جميع تفاصيل البيانات . 

How to Read Json List file in Flutter

ui.dart

body: FutureBuilder(
        future: DefaultAssetBundle.of(context).loadString('assets/jsonList.json'),
        builder: (context,snapshot) {
          if (snapshot.hasError) {
            return Center(
              child: Text('Error: ${snapshot.error}'),
            );
          } else if (snapshot.hasData) {
            var myData = json.decode(snapshot.data.toString())['friends'];
            return ListView.builder(
              itemCount: myData.length,
              itemBuilder: (context, index) {
                return Padding(
                    padding: const EdgeInsets.all(12.0),
                    child: Text(myData[index]['name']));
              },
            );
          } else {
            return Container();
          }
        },
      )
      

Data json

في هذا الملف لو نلاحظ انه قريب للشكل الاول ولكنه مختلف قليلا عنه وسوف نشرح لكم كيف تقوم بالتعامل معه في الجزء التالي .

Data json


jsonMap.json
[
  {
    "formule": "Linear Motion",
    "url": "qp1"
  },
  {
    "formule": "Constant Acceleration Motion",
    "url": "qp2"
  },
  {
    "formule": "Projectile Motion",
    "url": "qp3"
  },
  {
    "formule": "Force",
    "url": "qp4"
  },
  {
    "formule": "Work, Power, Energy",
    "url": "qp5"
  }
]

قراءة ملف json من asstes في Flutter بشرح بسيط


في هذا الجزء لو نلاحظ انه بدء ب القوس الخاص بال list ولم يبدء باسم الclass الذي يحمل بيانات ولهذا سوف نتعامل مع هذا الملف بشكل كامل مثلا معاملة ال List كما هو موضح بالكود لن تحتاج الوصول الى اي جزء معين لاننا سوف نتعامل مع الملف كامل كنوع من ال List لكي لا يحدث مشاكل ولان هذه هي صيغة الملف المراد .

قراءة ملف json من asstes في Flutter بشرح بسيط

json.dart

      body: FutureBuilder(
        future: DefaultAssetBundle.of(context).loadString('assets/jsonMap.json'),
        builder: (context,snapshot) {
          if (snapshot.hasError) {
            return Center(
              child: Text('Error: ${snapshot.error}'),
            );
          } else if (snapshot.hasData) {
            var myData = json.decode(snapshot.data.toString());
            return ListView.builder(
              itemCount: myData.length,
              itemBuilder: (context, index) {
                return Padding(
                    padding: const EdgeInsets.all(12.0),
                    child: Text(myData[index]['formule']));
              },
            );
          } else {
            return Container();
          }
        },
      )
      

فيديو الشرح


تعليقات