2013-05-11 15 views
17

Here I'm creating a JavaScript object and converting it to a JSON string, ale JSON.stringify zwraca w tym przypadku "[object Object]" zamiast wyświetlać zawartość obiektu. Jak mogę obejść ten problem, aby łańcuch JSON rzeczywiście zawierał zawartość obiektu?JSON.stringify zwraca "[obiekt obiektu]" zamiast zawartości obiektu

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

Alerty nie pokazują obiektów, tylko ciągi, powinieneś używać konsoli do tego. A konwersja obiektu na ciąg ma to samo, kończy się na [obiekt Object], ponieważ jest to ciąg znaków reprezentujący obiekt. – adeneo

+2

'theObject.toString()' = '" [obiekt obiektu] " –

+1

Czy kiedykolwiek zastanawiałeś się, dlaczego [obiekt Object]? Spójrz na tę odpowiedź: http://stackoverflow.com/a/25419538/3001704 – chetan92

Odpowiedz

26

Zastosowanie alert(JSON.stringify(theObject));

+0

jak zdobyć nazwę od json string – oxygen

+0

najlepsze rozwiązania! –

0

Korzystając

var theObject = {name:{firstName:"Mark", lastName:"Bob"}}; 
alert(JSON.stringify(theObject)); 
0

JSON.stringify wraca "[object Object]" w tym przypadku

to dlatego, że dzwonisz toString() na obiekcie przed serializacją:

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

Usuń wywołanie toString() i powinno działać poprawnie:

alert(JSON.stringify(theObject)); 
Powiązane problemy