有什么方法可以在Deno中将json文件转换为对象模型?

时间:2020-06-21 11:09:16

标签: typescript deno type-assertion

问题:当我尝试读取文件(student.json)并将其存储在Student []类型的变量中时,它说“类型'unknown'不可分配给类型'Student []'”。这是一个打字稿文件。

import { Student } from "../Models/studentModel.ts";
import { readJson, writeJson } from "https://deno.land/std/fs/mod.ts";

const f = await readJson("../public/student.json");
const students:Student[] = f;

export const get_all_students = (ctx: Context) => {
  return ctx.json(students,200);
};

期望:我正在尝试将json从文件返回到服务器。 尝试过的解决方案:我已经尝试过Json.stringify()。它仍然给我同样的错误。

2 个答案:

答案 0 :(得分:1)

readJson方法返回未知的Promise类型。未知类型只能分配给任何类型,而未知类型本身也可以分配。

如果您要强制编译器信任您一个未知类型的值是给定类型,则可以使用如下类型断言:

 const f = await readJson("./public/student.json");
 const students:Student[] = f as Student[];

答案 1 :(得分:0)

要解决上述错误,只需使用type assertion

const students = f as Student[];

我对deno不熟悉,但是可以肯定的是,您可以只编写文件以响应流,也可以将其与适当的标头一起使用。不确定这对您的情况是否有意义。