【问题标题】:How to loop through json defined in typescript如何遍历打字稿中定义的json
【发布时间】:2020-02-19 05:42:42
【问题描述】:

我正在使用 Angular。有一个类似的问题,但没有回答-

How to loop through a JSON object with typescript

我没有收到任何错误或警告。但我也没有得到输出。我试图模仿twitter-api。我在我的打字稿中创建了一个json object,我试图在 HTML 中循环遍历我的 json。这是我的代码:

twitter-timeline.component.ts

  output: JSON;
  twitter_data:any = {
      statuses: [
        {screen_name:"tanzeel", status: "wonderful day, enjoying at beach"},
        {screen_name:"pablo", status: "what a lovely morning #surfing #beach #relax"},
        {screen_name:"ricky", status: "feeling sick :-( #typhoid"}
      ]
  }

  ngOnInit() {
    this.output = <JSON>this.twitter_data;
  }

twitter-timeline.component.html

<div class="container" *ngFor="let tweets of output; let i=index">
    <div class="row">
        <div class="col-sm-12 col-md-12 col-lg-12 text-column">
            <p class="screen-name">{{tweets.statuses[i].screen_name}}</p>
            <p class="user-status">{{tweets.statuses[i].status}}</p>
            <br>
        </div>
    </div>
</div>

我创建 JSON 对象的方式有什么问题,或者我在 HTML 中读取值的方式有什么问题。请纠正我。

我也试过这种JSON结构:

output: JSON;
obj: any = 
{
"col1":{"Attribute1": "value1", "Attribute2": "value2", "Attribute3": "value3"},
"col2":{"Attribute1": "value4", "Attribute2": "value5", "Attribute3": "value6"}, 
"col3":{"Attribute1": "value7", "Attribute2": "value8", "Attribute3": "value9"} 
};

【问题讨论】:

    标签: json angular typescript


    【解决方案1】:

    您需要将*ngFor 更改为*ngFor="let tweets of output.statuses; let i=index"

    output 是一个对象,所以你不能像这样迭代对象,而是迭代数组output.statuses 然后你可以得到相关的数据,例如,

            <p class="screen-name">{{tweets.screen_name}}</p>
            <p class="user-status">{{tweets.status}}</p>
    

    您需要将let tweets of output 更改为 let tweets of output.statuses

    twitter-timeline.component.html

    <div class="container" *ngFor="let tweets of output.statuses; let i=index">
        <div class="row">
            <div class="col-sm-12 col-md-12 col-lg-12 text-column">
                <p class="screen-name">{{tweets.screen_name}}</p>
                <p class="user-status">{{tweets.status}}</p>
                <br>
            </div>
        </div>
    </div>
    

    Working Stackblitz

    【讨论】:

    • 哦。现在我明白了。所以问题在于我阅读对象的方式,而不是对象本身。谢谢你安娜:-)
    • @Tanzeel,如果你想迭代对象,那么你应该检查键值管道上的角度文档angular.io/api/common/KeyValuePipe ..很高兴再次帮助你兄弟..
    猜你喜欢
    • 2018-12-05
    • 2017-09-29
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多