Sami Remili نشر 15 ديسمبر 2020 أرسل تقرير نشر 15 ديسمبر 2020 ماهو تعريف : 1/ JSON 2/ YAML 3/ XML وماهو الفرق بينهم و متى نستعمل JSON و متى نستعمل YAML و متى نستعمل XML و يا ريت بامثلة بارك الله فيكم اقتباس
0 أسامة كمال النبريص نشر 15 ديسمبر 2020 أرسل تقرير نشر 15 ديسمبر 2020 (معدل) مرحباً بك سامي, بتاريخ 5 ساعات قال Sami Remili: JSON هي إختصار ل JavaScript Object Notation وتعني ترميز الكائنات بإستخدام الجافاسكريبت ,وهي عبارة عن صيغة أو شكل سهل متسلسل لنقل البيانات ,سهلة القراءة للأشخاص ويمكن إستيعابها وسهلة الفهم للحاسوب. وهي صيغة مستقلة من اللغة نفسها ويمكن إستخدامها في في العديد من لغات البرمجة وتعمل كبديل لل XML. ويتم تمثيلها بين قوسين {} تحتوي على الاسم الخاص بالبيانات والقيمة الخاصة به وتفصل البيانات عن طريق فاصلة كما يلي: { "firstName": "John", "lastName": "Smith", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } حيث أن firstName هي اسم البيانات أو حامل القيمة و John هي القيمة. بتاريخ 5 ساعات قال Sami Remili: YAML اختصار ل Ain’t Markup Language وتعني ليست لغة ترميز وهي سلسلة من البيانات القابلة للقراءة لدى البشر أو يمكن فهمها يستخدم في ملفات التكوين والتطبيقات التي يتم فيها تخزين ونقل البيانات. يتم إستخدامها لنفس الهدف الخاص ب XML ولكنها تحتوي على بنية بسيطة وطريقة بنيتها متمثلة أو مأخوذة من العديد من لغات البرمجة الأخرى ويمكن إستخدامها في أي لغة تحتاج لتخزين بيانات. ومثال لشكل بنيتها: - hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: ensure apache is at the latest version yum: name: httpd state: latest - name: write the apache config file template: src: /srv/httpd.j2 dest: /etc/httpd.conf notify: - restart apache - name: ensure apache is running service: name: httpd state: started handlers: - name: restart apache service: name: httpd state: restarted فهي قريبة من تمثل لغة بايثون للكود. حيث أن مثلا tasks تماثل array أو مصفوفة تحتوي على عدة بيانات والتي بداخلها name وهو اسم المعلومة و ما بعد : هي البيانات لل name وبنفس التنسيق لباقي البيانات. بتاريخ 5 ساعات قال Sami Remili: XML اختصار ل eXtensible Markup Language وتعني لغة الترميز القابلة للتمدد وتنتمي للغات الترميز وهي لغة ترميز عامة تستخدم لغرض نقل البيانات عبر الإنترنت بطريقة مرتبة ومنظمة ,تستطيع وصف العديد من أنواع البيانات وتستطيع التعامل مع الكثير من لغات البرمجة. ومعنى قابلة للتوسع أنه يمكنك تعريف شكل البيانات بالطريقة التي تريد وإنشاء وسوم خاصة حسب الحاجة ليس كلغة الترميز ال HTML حيث أنه هنالك وسوم محددة معرفة من قبلها تستطيع التعرف عليها فحسب بعكس ال XML. ومثال عليها: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> حيث أنها تبدأ بالمعرف وهكذا يتم التعرف على أن هذا الملف هو ملف يحتوي بيانات XML و note هي حاوية لبيانات والتي تحتوي على العناصر منها to ,from ,body ويتم إغلاق كل وسم وبداخلها تحتوي على البيانات. بتاريخ 5 ساعات قال Sami Remili: وماهو الفرق بينهم و متى نستعمل JSON و متى نستعمل YAML و متى نستعمل XML من الصعب تحديد الإختلافات بين المصطلحات الثلاثة لأنه إستخدامها متقارب ولكن يمكن التفريق بينهم حسب لغة البرمجة المستخدمة في التطبيق الخاص بك ففي حال: كنت تستخدم JavaScript ف JSON هي الخيار الأمثل. أما في حال كنت تستخدم لغة JAVA ف XML الخيار الأمثل. وفي حال كنت تستخدم Python ف YAML أفضل. ولكن الكلام أعلاه ليس مقياس ففي حال كنت تستخدم لغة جافا ولكنك تستقبل بيانات عن طريق JSON أو YAML فإستخدام واحد منهما يكون أفضل وأيضاً التفضيل هنا فقط لأن اللغة تتعامل مع ناقلات البيانات هذه بطريقة مباشرة بدون إستخدام مكتبات خارجية ,فكما أسلفت في التعريفات فيمكن إستخدام أي منها لنقل البيانات. يمكن القول أن التعامل مع JSON ربما يكون الأسهل والأخف في نقل البيانات عبر الشبكة لذا تكون منتشرة أكثر ولكن للبيانات الكبيرة ف XML الخيار الأمثل أما YAML فهي أقل إنتشاراً. في حال كنت تريد التعديل على البيانات من قبل الإنسان ف XML هي الأفضل في ذلك وفي حال كنت لا تهتم بذلك فإستخدام JSON أفضل هنا. تحياتي. تم التعديل في 15 ديسمبر 2020 بواسطة أسامة كمال النبريص إضافة بعض الأمثلة 3 اقتباس
0 Sami Remili نشر 15 ديسمبر 2020 الكاتب أرسل تقرير نشر 15 ديسمبر 2020 بتاريخ 13 ساعات قال أسامة كمال النبريص: مرحباً بك سامي, هي إختصار ل JavaScript Object Notation وتعني ترميز الكائنات بإستخدام الجافاسكريبت ,وهي عبارة عن صيغة أو شكل سهل متسلسل لنقل البيانات ,سهلة القراءة للأشخاص ويمكن إستيعابها وسهلة الفهم للحاسوب. وهي صيغة مستقلة من اللغة نفسها ويمكن إستخدامها في في العديد من لغات البرمجة وتعمل كبديل لل XML. ويتم تمثيلها بين قوسين {} تحتوي على الاسم الخاص بالبيانات والقيمة الخاصة به وتفصل البيانات عن طريق فاصلة كما يلي: { "firstName": "John", "lastName": "Smith", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } حيث أن firstName هي اسم البيانات أو حامل القيمة و John هي القيمة. اختصار ل Ain’t Markup Language وتعني ليست لغة ترميز وهي سلسلة من البيانات القابلة للقراءة لدى البشر أو يمكن فهمها يستخدم في ملفات التكوين والتطبيقات التي يتم فيها تخزين ونقل البيانات. يتم إستخدامها لنفس الهدف الخاص ب XML ولكنها تحتوي على بنية بسيطة وطريقة بنيتها متمثلة أو مأخوذة من العديد من لغات البرمجة الأخرى ويمكن إستخدامها في أي لغة تحتاج لتخزين بيانات. ومثال لشكل بنيتها: - hosts: webservers vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: ensure apache is at the latest version yum: name: httpd state: latest - name: write the apache config file template: src: /srv/httpd.j2 dest: /etc/httpd.conf notify: - restart apache - name: ensure apache is running service: name: httpd state: started handlers: - name: restart apache service: name: httpd state: restarted فهي قريبة من تمثل لغة بايثون للكود. حيث أن مثلا tasks تماثل array أو مصفوفة تحتوي على عدة بيانات والتي بداخلها name وهو اسم المعلومة و ما بعد : هي البيانات لل name وبنفس التنسيق لباقي البيانات. اختصار ل eXtensible Markup Language وتعني لغة الترميز القابلة للتمدد وتنتمي للغات الترميز وهي لغة ترميز عامة تستخدم لغرض نقل البيانات عبر الإنترنت بطريقة مرتبة ومنظمة ,تستطيع وصف العديد من أنواع البيانات وتستطيع التعامل مع الكثير من لغات البرمجة. ومعنى قابلة للتوسع أنه يمكنك تعريف شكل البيانات بالطريقة التي تريد وإنشاء وسوم خاصة حسب الحاجة ليس كلغة الترميز ال HTML حيث أنه هنالك وسوم محددة معرفة من قبلها تستطيع التعرف عليها فحسب بعكس ال XML. ومثال عليها: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> حيث أنها تبدأ بالمعرف وهكذا يتم التعرف على أن هذا الملف هو ملف يحتوي بيانات XML و note هي حاوية لبيانات والتي تحتوي على العناصر منها to ,from ,body ويتم إغلاق كل وسم وبداخلها تحتوي على البيانات. من الصعب تحديد الإختلافات بين المصطلحات الثلاثة لأنه إستخدامها متقارب ولكن يمكن التفريق بينهم حسب لغة البرمجة المستخدمة في التطبيق الخاص بك ففي حال: كنت تستخدم JavaScript ف JSON هي الخيار الأمثل. أما في حال كنت تستخدم لغة JAVA ف XML الخيار الأمثل. وفي حال كنت تستخدم Python ف YAML أفضل. ولكن الكلام أعلاه ليس مقياس ففي حال كنت تستخدم لغة جافا ولكنك تستقبل بيانات عن طريق JSON أو YAML فإستخدام واحد منهما يكون أفضل وأيضاً التفضيل هنا فقط لأن اللغة تتعامل مع ناقلات البيانات هذه بطريقة مباشرة بدون إستخدام مكتبات خارجية ,فكما أسلفت في التعريفات فيمكن إستخدام أي منها لنقل البيانات. يمكن القول أن التعامل مع JSON ربما يكون الأسهل والأخف في نقل البيانات عبر الشبكة لذا تكون منتشرة أكثر ولكن للبيانات الكبيرة ف XML الخيار الأمثل أما YAML فهي أقل إنتشاراً. في حال كنت تريد التعديل على البيانات من قبل الإنسان ف XML هي الأفضل في ذلك وفي حال كنت لا تهتم بذلك فإستخدام JSON أفضل هنا. تحياتي. لك جزيل الشكر أخي بارك الله فيك تحياتي 1 اقتباس
السؤال
Sami Remili
ماهو تعريف :
1/ JSON
2/ YAML
3/ XML
وماهو الفرق بينهم و متى نستعمل JSON و متى نستعمل YAML و متى نستعمل XML
و يا ريت بامثلة بارك الله فيكم
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.