【发布时间】:2021-05-07 23:46:01
【问题描述】:
我的程序中包含一个非常大的 JSON 数据文件。文件格式如下:
{
"2":{"x":0,"y":0,"w":16,"h":16},
"3":{"x":5,"y":9,"w":7,"h":12},
"4":{"x":2,"y":5,"w":12,"h":11},
...
}
我像这样包含它:
import * as colliders from "../assets/colliders.json";
问题是它似乎需要在键中使用引号。也就是说,如果我尝试将数据文件设为这样的格式(不带引号):
{
2:{x:0,y:0,w:16,h:16},
3:{x:5,y:9,w:7,h:12},
4:{x:2,y:5,w:12,h:11},
...
}
然后我在编译我的 Typescript 时收到以下错误:
Error TS1327: String literal with double quotes expected.
我可以只强制使用引号,但它会使文件大小增加 33% 左右。如果我不必在 JSON 文件中包含引号,我会更喜欢。这可能吗?还是在文件大小增加的情况下保留引号是更好的做法?
【问题讨论】:
-
键必须是字符串(参见json.org)才能获得有效的 JSON。看起来 JSON5 在这里也没有帮助。也许看看 YAML,这将需要第三部分库来解析。因此,无论哪种方式,您似乎都会支付罚款。另一种选择是创建您自己的格式,针对您的用例进行优化。
标签: javascript json typescript