2015-06-11 2 views
2

Я пытаюсь превратить объект javascript в JSON. Объект правильно сформирован, и console.log(myObject) вернет его правильно.JSON.stringify объекта возвращает только {}

Однако console.log(JSON.stringify(myObject)); возвращает только {}

Что я здесь отсутствует? Edit: рассматриваемый объект:

Object 
    autor: "Administrador" 
    descripcion: "At Google I/O 2015, everything we’ve seen and learned about is under the command of Sundar Pichai. In this exclusive interview, he walks us through his product vision.↵↵Subscribe: http://goo.gl/G5RXGs↵↵Check out our full video catalog: http://goo.gl/lfcGfq↵Visit our playlists: http://goo.gl/94XbKx↵Like The Verge on Facebook: http://goo.gl/2P1aGc↵Follow on Twitter: http://goo.gl/XTWX61↵Follow on Instagram: http://goo.gl/7ZeLvX↵Read More: http://www.theverge.com" 
    titulo: "The future of Google with Sundar Pichai" 
    url_imagen: "https://i.ytimg.com/vi/TguamcqrQjI/sddefault.jpg" 
    url_video: "https://www.youtube.com/embed/TguamcqrQjI" 
    __proto__: Object 

редактировать: Вот как я создаю объект:

var myObject = {}; 
    $http.get('apiCallToYoutubeIcantShareHereCauseItContainsAPrivateKey') 
    .success(function(data) { 

     myObject.titulo = data['items'][0]["snippet"]['title']; 
     myObject.descripcion = data['items'][0]["snippet"]['description']; 
     myObject.url_video ="https://www.youtube.com/embed/"+idYoutube; 
     myObject.url_imagen = data['items'][0]["snippet"]['thumbnails']['standard']["url"]; 
     myObject.autor = 'Administrador'; 
    }); 
+3

, что делает 'myObject' выглядеть? – AmmarCSE

+0

@AmmarCSE вот так: http://imgur.com/zsGFl76 – kace91

+3

@ kace91 Не добавить изображение добавить его в текст – Tushar

ответ

-1

Вполне возможно, что вам JSON.stringify вызов выдает ошибку, которая поймана каким-то образом, и именно поэтому результатом является пустой объект. Но без реального кода и/или контекста, в котором вы его используете, трудно сказать.

0

Вы уверены, что myObject все еще находится в рамках в точке вы выполняете console.log(JSON.stringify(myObject));

Если вы выполните следующую инструкцию в консоли вы увидите это работает отлично:

var web = { "domain":"mammothworkwear.com","keywords":["Helly Hansen", "Snickers"]}; console.log(JSON.stringify(web));

Я угадать ваш myObject пуст

Edit:

JSON вы вывесили выше не проверяет, вставьте его в http://jsonlint.com/

Если устранить проблемы форматирования и запустить все это в консоли, она работает, как ожидалось:

var myObject = { 
    autor: "Administrador", 
    descripcion: "At Google I/O 2015, everything we’ve seen and learned about is under the command of Sundar Pichai. In this exclusive interview, he walks us through his product vision.↵↵Subscribe: http://goo.gl/G5RXGs↵↵Check out our full video catalog: http://goo.gl/lfcGfq↵Visit our playlists: http://goo.gl/94XbKx↵Like The Verge on Facebook: http://goo.gl/2P1aGc↵Follow on Twitter: http://goo.gl/XTWX61↵Follow on Instagram: http://goo.gl/7ZeLvX↵Read More: http://www.theverge.com", 
    titulo: "The future of Google with Sundar Pichai", 
    url_imagen: "https://i.ytimg.com/vi/TguamcqrQjI/sddefault.jpg", 
    url_video: "https://www.youtube.com/embed/TguamcqrQjI" 
}; 
console.log(myObject); 
console.log(JSON.stringify(myObject)); 
+0

myObject не может быть пустым, потому что я вызываю вызовы console.log() как для объекта, так и для строковой версии одновременно, один за другим. – kace91

0

Это происходит потому, что у вас есть 2 с запятой ; внутри вашего объекта, который там не принадлежит.

Ваш текущий код:

var myObject = { 
    "autor": "Administrador", 
    "descripcion": "At Google I/O 2015, everything we’ve seen and learned about is under the command of Sundar Pichai.In this exclusive interview, he walks us through his product vision.Subscribe: goo.gl/G5RXGsFollow on Twitter: goo.gl/XTWX61↵Follow on Instagram: goo.gl/7ZeLvX ", 
    "titulo": "The future of Google with Sundar Pichai", 
    "url_imagen": "i.ytimg.com/vi/TguamcqrQjI/sddefault.jpg";, // <-- Semicolon that doesn't belong here 
    "url_video": "youtube.com/embed/TguamcqrQjI"; // <-- Semicolon that doesn't belong here 
}; 

После объекта без них:

JSFiddle: http://jsfiddle.net/zu2L3h5x/1/

var myObject = { 
    "autor": "Administrador", 
    "descripcion": "At Google I/O 2015, everything we’ve seen and learned about is under the command of Sundar Pichai.In this exclusive interview, he walks us through his product vision.Subscribe: goo.gl/G5RXGsFollow on Twitter: goo.gl/XTWX61↵Follow on Instagram: goo.gl/7ZeLvX ", 
    "titulo": "The future of Google with Sundar Pichai", 
    "url_imagen": "i.ytimg.com/vi/TguamcqrQjI/sddefault.jpg", 
    "url_video": "youtube.com/embed/TguamcqrQjI" 
}; 
+0

Это не мой код. Кто-то добавил его в комментарии, я думаю, вы подумали, что это я написал это. – kace91

+0

О, ну .. Я посмотрю ваше редактирование и отредактирую свой ответ. Я действительно думал, что это ты. –

0

Я думаю, что проблема, вы пытаетесь напечатать объект до получения это с сервера (It's an asynchronous request). Попробуйте напечатать его в конце success сообщения или использовать Promise/Отложенные концепции

var myObject = {}; 
    $http.get('apiCallToYoutubeIcantShareHereCauseItContainsAPrivateKey') 
    .success(function(data) { 

     myObject.titulo = data['items'][0]["snippet"]['title']; 
     myObject.descripcion = data['items'][0]["snippet"]['description']; 
     myObject.url_video ="https://www.youtube.com/embed/"+idYoutube; 
     myObject.url_imagen = data['items'][0]["snippet"]['thumbnails']['standard']["url"]; 
     myObject.autor = 'Administrador'; 

     console.log(JSON.stringify(myObject)); 
    }); 
Смежные вопросы