Вложенный объект JSON не отображается при печати
Невозможно показать глубоко вложенные объекты JSON для отображения. Для этого я искал все виды сообщений stackru. Ценю любую помощь в этом вопросе новичка. Я хочу, чтобы он отображал детали JSON Object атлета в массиве атлетов. Появляется как [Объект].
eventUnitResults: [ { is_team: true, athletes: [ [Object], [Object] ] },
{ is_team: true, athletes: [ [Object], [Object] ] } ]
const result = {}
let eventUnitResults = [];
let athletes = [];
for (i=0; i < 2; i++) {
const athlete = {};
athlete.athlete_name = 'Ram' + i;
athlete.athlete_gender = 'M'
athletes.push(athlete);
}
for (j=0;j < 2;j++) {
const nestedResult = {};
nestedResult.is_team = true;
if (athletes) {
nestedResult.athletes = athletes;
}
console.log('nestedResult:', nestedResult);
if (nestedResult) {
eventUnitResults.push(nestedResult);//TODO:
//eventUnitResults.push(JSON.stringify(nestedResult));//TODO:
}
}
console.log('eventUnitResults:', eventUnitResults);//<==== how can I get deeply nested values of athletes showing up properly here
if (eventUnitResults) {
result.event_unit_results = eventUnitResults;
}
console.log('result:', result)
ТИА
1 ответ
Если вы регистрируете свои объекты, вы можете преобразовать реальный объект в строку.
Фон
Если вы сравните это с Java (или большинство языков):
System.out.println(object);
печатает ваш object.toString()
, Если вы не переопределите это, это адрес памяти.
проблема
В JavaScript:
console.log(object);
[object, object]
будет печатать [object, object]
потому что он печатает то, что вы печатаете. В этом случае он не знает, что вы ожидаете строку, содержащую JSON.
Обратите внимание, что это относится не ко всем браузерам. Например, Chrome хочет помочь вам и печатает значение JSON в интерактивном режиме; Вы можете свернуть и свернуть это.
Решение
Решением этой проблемы является явное указание консоли печатать строку json. Вы можете сделать это, вызвав функцию встроенного объекта json для строкового преобразования объекта.
JSON.stringify(object);
{"content": "json"}
Для полноты напечатайте объект довольно, установив вывод печати на 4 пробела:
JSON.stringify(object, null, 4);
печатает:
{
"content": "json"
}