2013-09-17 3 views
0

Я использую ниже код для создания объекта JSON, который выглядит следующим образом:Построение действительного объекта JSON с Javascript

{"contacts":[{"provider":"Yahoo","firstName":"myname","lastName":"surname","nickname":"mynick","email":"[email protected]","photoURL":"http://l.yimg.com/dh/ap/social/profile/profile_bxx.png"}]}; 

var data = {}; 
var contacts; 
var gc = $.when(gigya.socialize.getContacts({callback: function(response){ 
    data['contacts'] = response.contacts.asArray(); 
}})); 
gc.done(function(response) { 
    contacts = data; 
}); 
console.log(contacts); 

Когда я прохожу в результате контакты объекта в шаблон соевого Google, объект JSON Безразлично Кажется хорошо построенным.

С помощью кода выше, как я могу построить действительный объект JSON?

Спасибо за помощь.

+4

'getContacts()', вероятно, является асинхронным, что означает, что он пытается записать 'контакты' перед оценкой' contacts = data'. Попробуйте переместить 'console.log (контакты)' в обратный вызов '.done()'. Для получения дополнительной информации о подобной выборке см. Http://stackoverflow.com/q/14220321. –

+0

Я могу получить значение 'contacts' вне' .done() '. Проблема заключается в получении действительного выхода JSON – drecute

+0

'var asJSON =' ['JSON.stringify (contacts)'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ JSON/stringify) –

ответ

0

Объект кажется нормально,

попробуйте использовать JOSN.stringify() пример jsFiddle
или JSON.parse()

Вы можете увидеть в примере, вы можете превратить объект в корректный формат JSON и реверса в допустимый объект JS.


Что касается код

  1. Что вы получаете от response?
  2. И почему вы используете response здесь, если вы не пользуетесь им?

    gc.done(function(response) { 
        contacts = data; 
    }); 
    

Я бы изменить эту строку EDITED

data['contacts'] = response.contacts.asArray(); 

в

contacts = JSON.parse(response.contacts); 

и удалить

gc.done(function(response) { 
    contacts = data; 
}); 
Смежные вопросы