JSON.stringify из Parse.Object.extend возвращает [object Object]

Как я могу расширить/реализовать toString для моего пользовательского объекта синтаксического анализа?

Скажем, например, у меня есть объект Parse, который содержит поля «имя» и «расстояние».

var NearBy = Parse.Object.extend("NearBy");
new Parse.Query(NearBy).first().then(function(nearby) {
    nearby.get("name") // = maxim
    nearby.get("distance") // = 3
})

Я хотел бы, чтобы JSON.stringify(nearby) выводил { "name" : "maxim", "distance" : 3" }, вместо этого он выводит "[object Object]"

Это можно исправить?


person Maxim Veksler    schedule 18.08.2015    source источник
comment
Попробуйте console.log(typeof nearby) ? Я подозреваю, что nearby уже является строкой. Попробуйте console.log(nearby) тоже.   -  person Prashanth Chandra    schedule 18.08.2015
comment
I would like JSON.stringify(nearby) to output где в вашем коде вы хотели бы, чтобы это было так?   -  person Jaromanda X    schedule 18.08.2015
comment
stackoverflow.com/questions/16493498/ Что-то могло вызвать toString на nearby   -  person Prashanth Chandra    schedule 18.08.2015
comment
@PrashanthChandra, ты был прав. Простое выполнение console.log(рядом) волшебным образом сработало. Пожалуйста, опубликуйте это как ответ? так что я могу принять?   -  person Maxim Veksler    schedule 18.08.2015


Ответы (2)


Попробуйте console.log(typeof nearby) и посмотрите, что это такое? Я подозреваю, что nearby уже является строкой.
Таким образом, console.log(nearby) должно работать.

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

person Prashanth Chandra    schedule 18.08.2015

Вам нужно использовать JSON.stringify(nearby)

Причина очень проста. Прямо сейчас у вас есть объект json, который не преобразуется ни в какую строку, это просто объект. Итак, когда вы бежите, вы видите, как следует:

[object object]

Поскольку прямо сейчас у вас есть два объекта типа JSON, вам нужно преобразовать их в строки, чтобы видеть их как строки, а не как буквальные объекты.

Ваш код должен выглядеть так:

var NearBy = Parse.Object.extend("NearBy");
new Parse.Query(NearBy).first().then(function(nearby) {
    nearby.get("name") // = maxim
    nearby.get("distance") // = 3
    JSON.stringify(nearby);
})

Таким образом, вы берете свой json и конвертируете его из объекта в строку, чтобы вы могли работать с его свойствами как строкой.

person Barr J    schedule 18.08.2015
comment
Это не так, попытка преобразования в строку и неудача - это как раз суть моего вопроса. Пожалуйста, подумайте о том, чтобы перечитать и внести предложения по редактированию, чтобы улучшить ясность. - person Maxim Veksler; 18.08.2015