json - typescript JSON字符串类

标签 json object typescript casting

让这个 JSON 字符串:

[
    {
        "id": 1,
        "text": "Jon Doe"
    },
    {
        "id": 1,
        "text": "Pablo Escobar"
    }
]

让这个类:

export class MyObject{
    id: number;
    text: string;
}

如何将此 JSON 字符串转换为 MyObject 列表?

如果我这样做:

console.log(<MyObject[]>JSON.parse(json_string));

它返回一个 Object 列表而不是一个 MyObject

列表

最佳答案

你不一定需要在这里上课。你可以只使用一个接口(interface)

export interface MyObject{
  id: number;
  text: string;
}

然后你就可以写:

var myObjArray : MyObject[] =  [
  {
    "id": 1,
    "text": "Jon Doe"
  },
  {
    "id": 1,
    "text": "Pablo Escobar"
  }
];

如果您的数据来自服务器,您可能会将其保存在一个类型为 any 的变量中,您只需将其分配给该类型的数组,它就会按预期工作。

var data: any = getFromServer();
var myObjectArray:MyObject[] = data;

在 typescript 中,您不需要实现接口(interface)的类。任何满足接口(interface)契约的对象文字都可以。

如果您的数据仍然是字符串,您可以使用 JSON.parse(jsonString) 将字符串解析为 JavaScript 对象。

查看 Playground here

关于json - typescript JSON字符串类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171620/

相关文章:

typescript - 如何让 TypeScript 加载 cordova 插件中包含的类型

json - 我如何在 Go 中解析 JSON?

php - 在 PHP 中访问类变量的替代语法

json - 我如何在 Go Lang 中使用多个元素对 JSON 进行编码

php - 为什么 jQuery Ajax JSON 请求总是失败?

JQuery Draggable 和带有 SVG 的 <object>?

c++ - 将 Win32 应用程序转换为对象

node.js - 当这些错误阻止时,如何生成 d.ts 文件类型?

javascript - 对年份数组进行排序(包括 BCE)

javascript - 如何在 JavaScript 中为 setInterval() 设置自定义时间?