Ben*_*Ben 2 json casting object typescript
让这个JSON字符串:
[
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
]
Run Code Online (Sandbox Code Playgroud)
让我们上课:
export class MyObject{
id: number;
text: string;
}
Run Code Online (Sandbox Code Playgroud)
如何将此JSON字符串转换为列表MyObject?
如果我做:
console.log(<MyObject[]>JSON.parse(json_string));
Run Code Online (Sandbox Code Playgroud)
它返回一个列表Object而不是列表MyObject
你不一定需要这里的课程.你可以使用一个界面
export interface MyObject{
id: number;
text: string;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以写:
var myObjArray : MyObject[] = [
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
];
Run Code Online (Sandbox Code Playgroud)
如果您的数据来自服务器,您可能会将其放在any类型的变量中,您可以将其分配给该类型的数组,它将按预期工作.
var data: any = getFromServer();
var myObjectArray:MyObject[] = data;
Run Code Online (Sandbox Code Playgroud)
在typescript中,您不需要实现接口的类.任何满足接口契约的对象文字都可以.
如果您的数据仍然是字符串,则可以使用JSON.parse(jsonString)该字符串将字符串解析为JavaScript对象.
在这里看操场
您将需要为您的类创建一个构造函数,并为收到的列表中的每个项目调用它。
export class MyObject{
constructor(public id: number, public text: string) { }
}
let data = [
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
];
let objects = data.map(o => new MyObject(o.id, o.text));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11578 次 |
| 最近记录: |