كيف احصل على عنصر من 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']
Mohamed__99 أضف ردا

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

Elalfi_Web أضف ردا

لا مشكلة، مازال بإمكاننا الوصول إلى كل العناوين 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 فقط

moazqm
  • حذف بواسطة المستخدم

نقوم بعمل loop على العناصر باستعمال forEach

var my_data = [{
	"1433901927011940748": {
		"title": " title 1",
		"descripiton": "text ..",
		"link": "/df"
	}
}, {
	"1433901927011940748": {
		"title": " title 2",
		"descripiton": "text ..",
		"link": "/df"
	}
}, {
	"1433901927011940748": {
		"title": " title 3",
		"descripiton": "text ..",
		"link": "/df"
	}




}];
my_data.forEach((item)=>{
    console.log(item["1433901927011940748"]["title"])
})
Mohamed__99
  • حذف بواسطة المستخدم

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

انا اريد عنصر واحد فقط