Как распечатать массивы в объектах JSON?

У меня есть этот веб-сервис с сайта drupal.

{
    "uid": [
        {
            "value": 8
        }
    ],
    "uuid": [
        {
            "value": "b823efdc-fa44-45ea-a1f4-a804bae4d215"
        }
    ],
    "langcode": [
        {
            "value": "en"
        }
    ],
    "name": [
        {
            "value": "pruthiswebar"
        }
    ],

}

Это мой класс, в нем нет всех различных элементов веб-сервиса, только тот, который мне нужен.

export class User {
    "uid": [
            {
                "value": number;
            }
     ];
    "uuid": [
        {
            "value": string;
        }
    ];
    "langcode": [
        {
            "value": string;
        }
    ];
    "name": [
        {
            "value": string
        }
    ];
}

Я хочу знать, как распечатать его в моем component.html

<h2>Users </h2>
<ul class = "users">
    <li *ngFor = "let user of users.name">
        <a routerLink = "/user/{{user.id}}">
            <span class = "badge">{{user.uid.value}}</span>{{ user.name.value | uppercase }}
        </a>
  </li>
</ul>

Мой веб-сервис происходит от Drupal. Я использую angular 5. Есть служба, которая использует json с помощью простого HTTP-запроса.

Но у меня такая проблема: ОШИБКА TypeError: невозможно прочитать значение свойства undefined

Вы можете использовать канал json для отображения вашего json на переднем плане.

Radonirina Maminiaina 25.03.2018 19:45
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
1
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

если вы просто хотите распечатать объект на своей html-странице (в формате json), вы можете использовать anuglar json pipe. (Радонирина уже рассказывала в комментариях)

вот как вы можете его использовать: {{user | json}}

[РЕДАКТИРОВАТЬ]

{{user.uid.value}} думаю не работает, потому что user.uid - это массив. Так, например, {{user.uid[0].value}} должен работать

спасибо, я хочу напечатать имя например, или любое другое значение

ValRob 25.03.2018 19:51

привет @ValRob, я отредактировал свой пост: {{user.uid[0].value}} должен работать в вашем случае

Adel 25.03.2018 19:53

У меня есть HomeComponent.html: 4 ERROR TypeError: не удается прочесть свойство «0» неопределенного значения ... Я нахожусь внутри цикла.

ValRob 25.03.2018 19:57

вы можете добавить код из вашего файла component.ts? где вы сохраняете данные в пользовательский массив? и, возможно, console.info (пользователи) и опубликуйте результат?

Adel 25.03.2018 20:11

Вы можете просто перебирать каждый объект из вашего основного объекта json, скажем, myObj.

<a ng-repeat=value in myObj.uid>
     <span> {{span}} </span>
</a> 

<a ng-repeat=value in myObj.uuid>
     <span> {{span}} </span>
</a>

И так далее.

Другие вопросы по теме