Подтвердить что ты не робот

Как отобразить представление JSON, а не [Объект объекта] на экране

Я делаю приложение AngularJS 2 с бета-версией. Я хочу показать JSON-представление объекта на моей странице, но он показывает [Object Object], а не {key1:value1 ....}

Из компонента, который я могу использовать:

get example() {return JSON.stringify(this.myObject)};

а затем в шаблоне:

{{example}}

но если у меня есть массив объектов и вы хотите распечатать список этих объектов, как я могу это сделать?

Использование:

<ul>
   <li *ngFor="#obj of myArray">{{obj}}</li>
</ul>

приводит к чему-то вроде:

- [Object Object]
- [Object Object]
- [Object Object]
- [Object Object]

и т.д. Есть ли способ показать их как JSON?

4b9b3361

Ответ 1

Если вы хотите увидеть, что у вас есть внутри объекта в своем веб-приложении, используйте json-канал в HTML-шаблоне компонента, например:

<li *ngFor="let obj of myArray">{{obj | json}}</li>

Протестировано и действует с помощью Angular 4.3.2.

Ответ 2

Мы можем использовать angular pipe json

{{ jsonObject | json }}

Ответ 3

Чтобы пройти через JSON Object: в Angluar (6.0. 0+), теперь они предоставляют значение keyvalue :

<div *ngFor="let item of object| keyvalue">
  {{ item.key }} - {{ item.value }}
</div>

ЧИТАЙТЕ ТАКЖЕ

Чтобы просто отобразить JSON

{{ object | json }}

Ответ 4

Дампирование содержимого объекта как JSON может быть достигнуто без использования ngFor. Пример:

объект

export class SomeComponent implements OnInit {
    public theObject: any = {
        simpleProp: 1,
        complexProp: {
            InnerProp1: "test1",
            InnerProp2: "test2"
        },
        arrayProp: [1, 2, 3, 4]
    };

наценка

<div [innerHTML]="theObject | json"></div>

Вывод (выполняется через beautifier для лучшей читаемости, в противном случае он выводится в одной строке)

{
  "simpleProp": 1,
  "complexProp": {
    "InnerProp1": "test1",
    "InnerProp2": "test2"
  },
  "arrayProp": [
    1,
    2,
    3,
    4
  ]
}

Я также обнаружил средство форматирования и просмотра JSON, которое отображает большие данные JSON, более читаемые (аналогично расширению JSONView Chrome): https://www.npmjs.com/package/ngx-json-viewer

<ngx-json-viewer [json]="someObject" [expanded]="false"></ngx-json-viewer>

Ответ 5

Есть два способа получить значения: -

  • Доступ к свойству объекта с использованием точечной нотации (obj.property).
  • Доступ к свойству объекта путем передачи в значение ключа, например, obj [ "property" ]

Ответ 6

<li *ngFor="let obj of myArray">{{obj | json}}</li>

Ответ 7

Обновление ответов других с помощью нового синтаксиса:

<li *ngFor="let obj of myArray">{{obj | json}}</li>

Ответ 8

если у вас есть массив объектов, и вы хотели бы десериализовать их в compoent

get example() { this.arrayOfObject.map(i => JSON.stringify (i) ) };

тогда в шаблоне

<ul>
   <li *ngFor="obj of example">{{obj}}</li>
</ul>

Ответ 9

this.http.get<any>('http://192.168.1.15:4000/GetPriority')
  .subscribe(response => 
  {
  this.records=JSON.stringify(response) // impoprtant
  console.log("records"+this.records)
  });