#javascript #node.js #sequelize.js
#javascript #node.js #sequelize.js
Вопрос:
Я изменил данные в строковом формате, где это было похоже на [object object], но я хочу изменить строковый объект на объект json Я попробовал json.parse, но он не превратился в объект json
не могли бы вы подсказать мне, где я делаю неправильно и как это исправить
try {
var timekeep = await Orders.findAndCountAll({
where: {
cid: orders_info.cid,
},
order: [
['id', 'DESC']
],
limit: 1,
raw: true,
});
var cont1 = JSON.stringify(timekeep.rows[0]);
var obj = JSON.parse(cont1);
} catch (err) {
console.log(err)
}
console.log('org data' timekeep)
console.log('data as string' cont1);
// now when I am trying to print
console.log('data as json' obj);
вывод console.logs
org data [object Object]
data as sttring{"id":4006,"mid":1,"cid":41,"wid":7138,"oid":null,"status":null,"options":null,"starttime":"2018-08-15T06:08:55.000Z","duration":null,"ordertotal":50,"counter":null,"closetime":null}
data as json [object object]
Комментарии:
1.
var obj = JSON.parse(obj);
=>var obj = JSON.parse(cont1);
2. К вашему сведению, объекты — это объекты. Они могут быть представлены в виде JSON, который является строкой. Поэтому говорить «объект string» и «объект JSON» не имеет смысла. Объект или JSON — вот и все.
3. Кроме того, измените последнюю строку на
console.log(obj);
— Это уже объект. Когда вы это делаетеconsole.log("something" object)
, это автоматически превращает объект в строку и добавляет его к строке, которую вы регистрируете. Если вы хотите войти с небольшим количеством текста, чтобы сообщить вам, что вы вошли, используйте запятую, подобную этой…console.log("data as object", obj);
4. Просто
console.log(obj)
это уже объект json.5. @MoadEnnagi Не существует такого понятия, как объект json.
Ответ №1:
Из того, что я вижу, вы уже конвертируете его в JSON с var obj = JSON.parse(cont1);
Итак, у вас уже есть JSON, просто то, как вы его печатаете, неверно. К нему с запятой вместо .
console.log('data as json', obj)
выполняет конкатенацию строк и пытается объединить строку с объектом
Ответ №2:
После объединения строк он печатается data as json [object object]
. если вы поместите ,
вместо
этого, этот объект будет напечатан правильно. Во фрагменте вы можете увидеть разницу.
var jsonstr = '{"id":4006,"mid":1,"cid":41,"wid":7138,"oid":null,"status":null,"options":null,"starttime":"2018-08-15T06:08:55.000Z","duration":null,"ordertotal":50,"counter":null,"closetime":null}';
console.log(JSON.parse(jsonstr));
console.log('data as json' , JSON.parse(jsonstr));
console.log('data as json' JSON.parse(jsonstr));
Ответ №3:
console.log просто объект; если вы хотите использовать объект log и строку, вместо
jsonString = '{"key1":"value1","key2":"value2"}'
jsonObject = JSON.parse(jsonString)
console.log(jsonObject) // logging just the object
console.log('jsonObjectName' , jsonObject) // logging object with string
console.log('jsonObject.key1 : ' jsonObject.key1 )
// this may come handy with certain IE versions
function parseJSON(resp){
if (typeof resp === 'string')
resp = JSON.parse(resp);
else
resp = eval(resp);
return resp;
}