我有一个看起来像这样的json模型
{
"loggers" : {
"logger1" : {
"name" : "logger1",
"level" : "DEBUG",
"sub_loggers" :{
"logger1.nested_logger1" : {
"name": "logger1.nested_logger1",
"level": "INFO"
},
"logger1.nested_logger2" : {
"name": "logger1.nested_logger2",
"level": "INFO",
"sub_loggers": {
"logger1.nested_logger2.more_of_that" : {
"name": "logger1.nested_logger2.more_of_that",
"level": "INFO"
}
}
}
}
},
"logger2" : {
"name": "logger2",
"level": "WARN"
}
}
}
我希望保存模型,因为我从变量中的HTTP请求中收到它,但我希望它被映射,所以我不必使用any
。
如果有办法将它分成2个模型,我还想要更多,
我只是不知道如何映射它,因为sub_loggers
不是数组,它是一个对象,其关键名称也是它们所代表的记录器的名称。
答案 0 :(得分:2)
这是一个选项:
type Level = "DEBUG" | "INFO" | "WARN" | "ERROR";
type Loggers = {
[name: string]: Logger;
}
interface Logger {
name: string;
level: Level;
sub_loggers?: Loggers;
}
let json = YOUR_JSON as { loggers: Loggers };
let loggers: Loggers = json["loggers"];
回答你的评论问题:
?
标记为optional property。