JSON.stringify возвращает [object Object] вместо содержимого объекта

Здесь я создаю объект JavaScript и преобразовываю его в строку JSON, но JSON.stringify в этом случае возвращает "[object Object]" вместо отображения содержимого объекта. Как обойти эту проблему, чтобы строка JSON действительно содержала содержимое объекта?

var theObject = {name:{firstName:"Mark", lastName:"Bob"}};
alert(JSON.stringify(theObject.toString())); //this alerts "[object Object]"

person Anderson Green    schedule 11.05.2013    source источник
comment
Оповещения не показывают объекты, только строки, для этого вы должны использовать консоль. И преобразование объекта в строку делает то же самое, вы получаете [object Object], так как это строковое представление объекта.   -  person adeneo    schedule 11.05.2013
comment
Вы когда-нибудь задумывались, почему [object Object]? Взгляните на этот ответ: stackoverflow.com/a/25419538/3001704   -  person kchetan    schedule 15.11.2016


Ответы (4)


Используйте 1_

person Arbel    schedule 11.05.2013
comment
как получить имя из строки json - person oxygen; 31.05.2016
comment
@oxygen В приведенном выше примере OP используйте: console.log(JSON.stringify(theObject.name.firstName.toString())); // output: "Mark" - person Chris22; 07.03.2019

theObject.toString()

Метод .toString() является виновником. Убери это; и скрипка должна работать: http://jsfiddle.net/XX2sB/1/

person hjpotter92    schedule 11.05.2013

JSON.stringify возвращает «[object Object]» в этом случае.

Это потому, что вы вызываете toString() для объекта перед его сериализацией:

JSON.stringify(theObject.toString()) /* <-- here */

Удалите вызов toString(), и он должен работать нормально:

alert( JSON.stringify( theObject ) );
person Kevin Boucher    schedule 11.05.2013

Использовать

var theObject = {name:{firstName:"Mark", lastName:"Bob"}};
alert(JSON.stringify(theObject));
person Tamil Selvan C    schedule 11.05.2013