如何在JSON对象中打印数组?

时间:2018-03-25 17:43:35

标签: json angular http

我有一个来自drupal网站的网络服务。

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

}

这是我的类,它没有来自webservice的所有不同元素,只是我需要的那个。

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。我正在使用角度5.有一个服务使用简单的http get请求消耗json。

但是我遇到了这个问题: 错误类型错误:无法读取属性&#39;值&#39;未定义的

2 个答案:

答案 0 :(得分:0)

如果您只想在html页面中打印对象(以json格式),那么你可以使用anuglar json管道。 (Radonirina已在评论部分告诉你)

这就是你如何使用它:{{user | json}}

[编辑]

{{user.uid.value}}我认为不起作用,因为user.uid是一个数组。例如,{{user.uid[0].value}}应该起作用

答案 1 :(得分:0)

你可以简单地从主对象json迭代每个对象,让我们说它是myObj。

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

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

等等。