![](/img/trans.png)
[英]JavaScript how to set nested json object data into single nested map
[英]how to import nested JSON data into JavaScript
我有一个名为 ui-components.json 的 JSON 文件,其中包含移动应用程序中使用的用户界面组件的配置数据。 以下是文件中的数据示例:
{
"picker": {
"color": {
"choices": ["brown", "black", "red", "green"],
"defaultChoice": "red"
},
"size": {
"choices": ["small", "medium", "large"],
"defaultChoice": "medium"
},
"direction": {
"choices": ["north", "south", "east", "west"],
"defaultChoice": "west"
}
},
"number": {
"size": {
"choices": ["1", "2", "3", "4", "5"],
"defaultChoice": "5"
},
}
}
目前,正在有选择地导入此数据,如下所示 -
import { picker } from '../../config/ui-components';
虽然这可行,但导入的数据比必要的多得多(比上面的示例中显示的要多)。 导入配置数据的文件只需要color
,所以我尝试了下面的变体,但编辑器显示错误,果然,当尝试运行应用程序时,它抛出了错误。
// variations attempted
import { picker.color } from '../../config/ui-components';
import { picker.color as color } from '../../config/ui-components';
import { picker['color'] } from '../../config/ui-components';
import { picker['color'] as color } from '../../config/ui-components';
是否有可能做到这一点? 如果是这样,正确的语法是什么? 如果不是,为什么不呢?
您无法导入部分 json 数据,但如果您使用的环境支持 commonjs 语法,您可以执行以下操作
let{
picker:{
color:colors
}
}=require("../../config/ui-components") //if the Json file extension is .json
console.log(colors)
因此,我不知道您可以像这样直接导入 JSON 的环境,因此您可能正在使用一些处理文件的工具。 不确定它是否支持类似的东西,但你也可以这样做:
import { picker } from '../../config/ui-components';
const pickerColor = picker.color;
除非您的工具支持我从未听说过的晃动 JSON,否则在导入的早期执行此操作不太可能获得任何性能优势。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.