json - 如何将带有标识符的 JSON 对象解析为打字稿?
问题描述
我有一个看起来像这样的大型 json 对象:
{
"item1": {
"key1": "val1",
"key2": "val2",
"key3": [
"val4",
"val5",
]
},
{
"item2": {
"key1": "val1",
"key2": "val2",
"key3": [
"val3",
"val4",
]
}
... etc ...
}
我创建了一个界面:
interface MyObj {
key1: string;
key2: string;
key3: string[];
}
然后尝试解析json:
const myObj[]: {string: Myobj[]} = JSON.parse(response);
但我得到了错误SyntaxError: Unexpected token o in JSON at position 1
。我已经签response
入了一个 json 验证器,它通过了。
我想解析response
成一个数组MyObj
。
解决方案
这里很少出错,您的类型定义没有使用正确的 TypeScript 语法
const myObj[]: {string: Myobj[]} = JSON.parse(response);
^^^^^^^^^^^^^^^^^^^^^
This looks weird
此外,您的响应对象格式错误,key3
无效(位于数组和对象之间)。
无论如何,先尝试定义响应的类型,然后解析:
type MyObj = {
key1: string
// etc ...
}
type Response = {
[key: string]: MyObj
}
const data:Response = JSON.parse(response)
推荐阅读
- python - 在 Python 中匹配字符串元素(应用函数)
- html - 反应中标签的随机洗牌
- java - 您将如何围绕某个点旋转 3D 数组(Java)
- python - 具有一个 y 轴值的 Matplotlib 数据框在图中未正确显示
- javascript - 在特定日期和时间后使 div id 消失
- ios - 如何调试“LIBPLATFORM 客户端中的错误:尝试递归锁定 os_unfair_lock”崩溃?
- websocket - 如何在应用程序中处理 websockets 数据。在哪里缓冲?
- ios14 - 是否可以本地化 iOS 14“选择更多”对话框显示的 NSPhotoLibraryUsageDescription 字符串?
- python - 如何仅删除数据框中的尾随空列?
- html - 在 Vue3 中使用 Font Awesome 和 Bulma