مسج - تحليل البيانات JSON - تواجه مشكلة مع اسم المتغير

StackOverflow https://stackoverflow.com/questions/1231447

سؤال

وقائي الاول الخوض في العمل مع البيانات JSON. لقد قليلا من الخبرة باستخدام مسج بالرغم من ذلك.

وأنا نشر في هذا URL (API نعرفكم): jyoseph.com/api/read/json

ما أحاول القيام به هو إخراج سلمان أن يحصل عاد. ما لدي حتى الآن:

$(document).ready(function(){ 

$.getJSON("http://jyoseph.com/api/read/json?callback=?", 
  function(data) { 
    //console.log(data); 
    console.log(data.posts);         

      $.each(data.posts, function(i,posts){ 
        var id = this.id; 
        var type = this.type; 
        var date = this.date; 
        var url = this.url; 
        var photo500 = this.photo-url-500; 

        $('ul').append('<li> ' +id+ ' - ' +type+ ' - ' +date+ ' - ' +url+ ' - ' +photo500+ ' - ' + ' </li>'); 
      }); 

  }); 

});

وانظر منصبي jsbin للبرنامج النصي بأكمله: http://jsbin.com/utaju/edit

وبعض المفاتيح من نعرفكم ديك "-" الواصلات في نفوسهم، والتي يبدو أن يسبب مشكلة. كما ترون "الصور رابط-500" أو لآخر "الصور عنوان" يسبب النصي لكسر، فإنه إخراج نان.

هل هناك مشكلة مع وجود الواصلات في أسماء الرئيسية؟ أو أنا ذاهب عن هذا كله غير صحيح؟

هل كانت مفيدة؟

المحلول

وإذا كان هناك شرطات في أسماء ستحتاج إلى الوصول إليها بشكل مختلف. تغيير var photo500 = this.photo-url-500; لقراءة var photo500 = this["photo-url-500"];.

نصائح أخرى

تجدر الإشارة أنه من الأفضل عدم إلحاق داخل كل التكرار. أفضل لإلحاق إلى سلسلة أو دفع إلى مجموعة ثم إلحاق مرة واحدة بعد انتهاء مكرر. إلحاق إلى دوم غير مكلفة.

واستخدم قوس تدوين للوصول إلى أعضاء:

var photo500 = this['photo-url-500']; 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top