网站搜索

Json 操作 TypeScript Angular 2


我有 Python 背景,最近开始使用 TypeScript 和 Angular2 编程。我想知道如何使用 TypeScript 从 JSON 对象中获取键。我有如下响应:

response.text()

我将这个对象传递给一个函数

removeMetaData (my_data: string){
    //(Various manipulation)...etc
}

我读到我可以调用 json() 方法而不是 text()。如果我这样做,我应该为 my_data 使用什么类型?

那么,如果我的 JSON 看起来像这样:

{
    "count": 100,
    "next_page": "http://www.test.com/users/?page=2", 
    "prev_page": "http://www.test.com/users/?page=3", 
     "results":[
     {
          "username": "johnny"
     },
     Etc....

     ]

我该如何解析那个?我读过我可能需要使用接口,但我不明白如何做。

在 Python 中,只需 response["next_page"] 就可以获取字典的键,然后我可以将该值分配给类中的一个变量。这正是我在组件中想要实现的。

谢谢你。

加法

list() {
    this.requestService.get(this.api_path)
    .subscribe(
    response => this.populate(response.json()),
    error => this.response = error.text()
    )

}

populate(payload: object) {
    this.count = payload.count;
    this.next = payload.next;
    this.previous = payload.previous;
   *payload.results => this.users = payload.results;******
}

答案#1

声明一个将用作值对象的接口。

export interface IPage
{
 count:number;
next_page:string;
prev_page:string;
results:Array<any>;
...
...
}

var my_data:IPage;

现在将解析后的 JSON 值分配给 my_data,并使用 ‘.’ 操作符访问所有属性,即 my_data.count, my_data.results。

随时可以提出任何问题。

答案#2

如果我那样做,我应该为 my_data 使用哪种类型?

它只是一个 JavaScript 对象。

例如,如果你的 JSON 看起来像:

{
  "foo": {
   "bar": "bas"
  }
}

然后在解析后的 JSON(变量 someObj 中)值 someObj.foo.bar 将是 bas 🌹