كيف احصل على عنصر من json بالمفتاح

  • Mohamed__99

السلام عليكم

اريد مساعدة في جافاسكريبت

لدي هذه البيانات

var my_data = '[{
	"143390192": {
		"title": " title 1",
		"descripiton": "text ..",
		"link": "/df"
	}
}, {
	"14339019": {
		"title": " title 2",
		"descripiton": "text ..",
		"link": "/df"
	}
}, {
	"1433901": {
		"title": " title 3",
		"descripiton": "text ..",
		"link": "/df"
	}


}]';

اريد الحصول على قيمة title ل عنصر 14339019

بالجيكوري او جافاسكريبت


يبدو أن البيانات لديك موجودة في شكل نص string، لذلك يجب تحويلها إلى JSON أولًا من خلال التابع JSON.parse

const new_my_data = JSON.parse(my_data)

بعد ذلك يمكننا أن نقوم بالمرور على كل عناصر المصفوفة من خلال التابع map بالشكل التالي:

new_my_data.map(item => item['1433901927011940748'].title);
// [' title 1', ' title 2', ' title 3']

بهذا الشكل يمكننا الحصول على كل قيم الخاصية title في كل العناصر.

إن أردت إزالة المسافات الإضافية الموجودة في كل عنوان، يمكن إستخدام التابع trim بالشكل التالي:

new_my_data.map(item => item['1433901927011940748'].title.trim());
// ['title 1', 'title 2', 'title 3']

اسف وقع خطء في العناصر ، المفروض ان تكون مختلفة

لا مشكلة، مازال بإمكاننا الوصول إلى كل العناوين Titles من خلال إستخدام التابع Object.keys الذي سيقوم بجلب كل المعرفات id الخاصة بكائن، معين، مثال:

const new_my_data = JSON.parse(my_data);

new_my_data.map(item => Object.keys(item)[0]);
// ['143390192', '14339019', '1433901']

الآن يمكننا إستعمال كل معرف من النتيجة السابقة للحصول على قيمة الخاصية title:

new_my_data.map(item => item[Object.keys(item)[0]].title);
// [' title 1', ' title 2', ' title 3']

ونستطيع تنفيذ التابع trim بعد ذلك:

new_my_data.map(item => item[Object.keys(item)[0]].title.trim());
// ['title 1', 'title 2', 'title 3']

ربما لم تفهمني ، انا لا اريد الحصول على كل القيم، اريد قيمة واحدة وهي title 2 فقط