الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حول التعامل مع json - سؤال حيرني :)

بدأه mybeshoo في 18 مايو 2012 · 2 رد · 960 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أعاني مشكلة في التعامل ( فهم ) اسلوب التعديل و الاضافة على أوبجكت json .

سوف اطرح المشكله:

لدي الاوبجكت التالي :

var work = { "clients" :
      [
		 { 
		  "client_name" : "Samer Hassan", 
		  "telephone" : 
		  [
						{
						"number" : "65434543453"
						}
		   ]
					,
		  "fax" : 
		  [
						{
						"number" : "+567898765456"
						}

		  ]

		  }
	  ]
	};

كما هو واضح اتعامل مع بيانات العملاء .

السؤال : كيف يمكنني وعن طريق الجافا سكريبت ان اضيف عميل جديد ؟ وان اربط ارقام الفاكاسات الخاصة والهواتف في اسمة ؟

وكيف يمكنني ان اضيف الى عميل معين اعرف اسمة ولا اعرف رقم ال ID الخاص او المسار الى ال NODE .

مثلا اريد ان اضيف رقم هاتف جديد الى "Samer Hassan" ولا اعرف شيء سوى Samer Hassan و انه يوجد element اسمها telephone

اتوقع ان الاوبجكت الموجود بالاعلاى لا يخدمني بشكل جيد - بالواقع انا مبرمج PHP واتعامل مع المصفوفات ولكن دائما استعمل

$array['Text_index']

لكي اصل بسرعة بدون بحث لووب.

ولكن هنا بالجافا سكريبت الوضع يبدو انه مختلف :) اتمنى الافادة بشكل اكبر كيف يمكنني ان اضيف اسماء بحيث كل اسم يكون له تفرع مستقل وان استطيع ان اضيف الى اسم معين رقم هاتف معين عبر استخدام الاسم ك ID

تم تعديل هذه المشاركة بواسطة mybeshoo في 18 مايو 2012 في 01:32

#2

الـjson الذي كتبته غير مرن. الـjson يشبه الـhashtable في php تماماً :

var foo = {
    "one" : {
        "name" : "Barakat",
        "age"  : 20,
    },
};

هو نفسه , في php :

$foo    = array(
    "one" => array(
        "name" => "Barakat",
        "age"  => 20;
    ),
);

يمكنك تعديل الـjson الذي وضعته ليصبح :

    var clients = {
        "Samer Hassan" : {
            "phone"  : "65434543453",
            "fax"    : "+567898765456",
            "country": "Saudi Arabia",
        },
        "Ali Mohammed" : {
            "phone"  : "65344343453",
            "fax"    : "+567898325456",
            "country": "Saudi Arabia",
        },
    };

وإذا أردت إضافة عميل, يُمكنك كتابة :

        clients["Saeed Abdullah"] = {
            "phone"  : "65342245453",
            "fax"    : "+523498325456",
            "country": "Saudi Arabia",
        };

وستصبح قيمة clients الآن :

var clients = {
    "Samer Hassan": {
        "phone": "65434543453",
        "fax": "+567898765456",
        "country": "Saudi Arabia"
    },
    "Ali Mohammed": {
        "phone": "65344343453",
        "fax": "+567898325456",
        "country": "Saudi Arabia"
    },
    "Saeed Abdullah": {
        "phone": "65342245453",
        "fax": "+523498325456",
        "country": "Saudi Arabia"
    }
}

إنظر لهذا المثال الشامل, ضعه في ملف html وافتحه بالمُتصفح :

<!DOCTYPE html>
<head>
  <title>Add JSON Item</title>
  <meta charset="utf-8"/>
  <style>
  div {
    direction: rtl;
    text-align: right;
  }
  </style>
  <script>
    var clients = {
        "Samer Hassan" : {
            "phone"  : "65434543453",
            "fax"    : "+567898765456",
            "country": "Saudi Arabia",
        },
        "Ali Mohammed" : {
            "phone"  : "65344343453",
            "fax"    : "+567898325456",
            "country": "Saudi Arabia",
        },
    };
  </script>
</head>
<body>
    <div>القيم الأولية: </div>
    <pre><script>document.write("var clients = " + JSON.stringify(clients, undefined, 4));</script></pre>

    <div>يجري إضافة عميل جديد إسمه Saeed Abdullah.  </div>
    <script>
        clients["Saeed Abdullah"] = {
            "phone"  : "65342245453",
            "fax"    : "+523498325456",
            "country": "Saudi Arabia",
        };
    </script>

    <div>قائمة العملاء الجديدة بعد إضافة سعيد :</div>
    <pre><script>document.write("var clients = " + JSON.stringify(clients, undefined, 4));</script></pre>

</body>
</html>
2
#3

جزاك الله الف خير ....

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…