Я пытаюсь найти лучший способ извлечь подтипы из строки JSON. Например, скажем, вы получили следующий ответ от сервера:
{
"isEnabled": true,
"alpha": 1.0,
"backgroundColor": "#ffffff",
"clipToBounds": false,
"text": "A random lorem epsum",
"textAlignment": "left",
"font": "Sans Serif",
"fontSize": 16.0,
"cornerRadius": 4.0,
"shadowColor": "#000000",
"shadowRadius": 2.0,
"shadowOffsetY": 2.0,
"shadowOffsetX": 0.0,
"border": 2.0,
"borderColor": "#444444"
}
Я хотел бы извлечь приведенную выше строку JSON
в следующие типы в Typescript
:
interface CornerRadiusStyle {
cornerRadius: number
}
interface ShadowStyle {
shadowColor: string
shadowRadius: number
shadowOffsetX: number
shadowOffsetY: number
}
interface BorderStyle {
border: number
borderColor: string
}
interface LayerStyle {
cornerRadiusStyle: CornerRadiusStyle
shadowStyle: ShadowStyle
borderStyle: BorderStyle
}
interface Style {
backgroundColor: string
clipToBounds: boolean
layerStyle: LayerStyle
}
interface View {
style: Style
isEnabled: boolean
alpha: number
}
interface TextStyle {
textAlignment: string
font: string
fontSize: number
}
interface Label extends View {
text: string
textStyle: TextStyle
}
Таким образом, вы в конечном итоге сможете сделать следующее:
const label: Label = JSON.parse(/* customized parsing */);
const textStyle = label.textStyle;
const text = label.text;
const style = label.style;
const alpha = label.alpha;
Как я могу go выполнить это? Я использовал revivers
, но он все еще выглядит как запутанный процесс, и я надеялся, что некоторые из присутствующих здесь экспертов могли бы пролить свет на более простой и краткий процесс, чтобы сделать это :)