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 🌹
