如何将JSON字符串解析为嵌套的接口类型?检查一下是否正常?
我有一个例子,但我的模型更复杂:
export interface User = {
name: Field;
surname: Field;
};
export interface Field = { icon: string; text: string; visibility: boolean };
export interface Users = User[]
这将是:
export type user = {
name: field;
surname: field;
};
export type field = { icon: string; text: string; visibility: boolean };
export type users = user[]
否则就是上课。没关系。
下面是一个json的例子:
[
{
"name": { "text": "David", "icon": "icon1.png", "visibility": true },
"surname": { "text": "Smith", "icon": "icon2.png", "visibility": true }
},
{
"name": { "text": "Arthur", "icon": "icon3.png", "visibility": true },
"surname": { "text": "L.", "icon": "icon6.png", "visibility": true }
},
{
"name": { "text": "Anthony", "icon": "icon1.png", "visibility": false },
"surname": { "text": "Isaacson", "icon": "icon2.png", "visibility": true }
},
{
"name": { "text": "Mike", "icon": "icon3.png", "visibility": true },
"surname": { "text": "Jobs", "icon": "icon5.png", "visibility": false }
}
]
编辑:
下面是一个为什么Chithambara方法无效的例子:操场
2条答案
按热度按时间ep6jt1vc1#
如果您的验证需求足够复杂,我会评估io-ts之类的东西的使用。它是一个库,用于根据代码中的元数据自动生成运行时验证。
如果您的需求更有限,您可以只利用用户定义的类型保护。
类型保护所做的是接受一个
unknown
(或any
,在这种函数中实际上没有区别),并告诉编译器传入的对象 * 与某个接口兼容。ar5n3qh52#
它似乎工作,但它是非常复杂的维护代码,有没有其他方法更维护?
是的,你可以让typia生成函数。给定以下类型脚本输入:
编译后的JavaScript是
并且输出是
所有的魔力都在
IsUser
函数中,你不必自己创建。