在项目中需要导入json数据作为对象使用
但是在ts中一直会报错
方式1:最开始的解决方案是在根目录建立一个typings.d.ts
// typings.d.ts
declare module "*.json" {
const value: any;
export default value;
}
这种方法可以使用,但是会报错
import * as root from '../mock/stocklist_1d.json'
console.log(root ) // ok
console.log(root.chartlist) //ts编译报错
方式2:改成下面的方式。但是还是不成功
stock_list_1d.d.ts文件是通过下面的连接生成的
http://www.json2ts.com/#
求老司机带路
// index.ts
import root from '../mock/stocklist_1d.json';
console.log(root);
// stock_list_1d.d.ts
export interface Stock {
symbol: string;
}
export interface Chartlist {
volume: number;
avg_price: number;
current: number;
time: string;
}
export interface RootObject {
stock: Stock;
success: string;
chartlist: Chartlist[];
}
const root: RootObject;
export default root;
// stock_list_1d.json
{
"stock": {
"symbol": "SH601009"
},
"success": "true",
"chartlist": [
{
"volume": 359800,
"avg_price": 11.87,
"current": 11.87,
"time": "Thu Mar 16 09:30:00 +0800 2017"
},
{
"volume": 78300,
"avg_price": 11.87,
"current": 11.89,
"time": "Thu Mar 16 09:31:00 +0800 2017"
}
]
}
import
导入的是一个模块,对于JSON很明显不适用。其实很简单,可以采用 node 加载方式: