【发布时间】:2021-07-25 18:56:42
【问题描述】:
我正在使用执行此操作的 python 脚本导出一些数据:
data = {......., 'noTick': 'true'}
with open('items.json', 'w') as sample:
sample.write(json.dumps(data))
我试图以这种方式在 vue 应用程序中导入 (src/data/items.json):
export default [
{
"PropertyOne": "ValueOne",
.....,
"noTick": "true"
},
{
......
}
]
然后在我的 component.vue 中导入它:
import ALL_ITEMS from 'src/data/items.json'
...
const codes = ALL_ITEMS
问题是 quasar 框架中的 q-tree 组件期望 noTick 属性不被引用:
{
"PropertyOne": "ValueOne",
.....,
noTick: true
}
到目前为止,我只想出了:
-
在 vscode 中进行查找/替换。
-
转换为字符串并返回 JSON:
export default JSON.stringify(
{
"PropertyOne": "ValueOne",
.....,
"noTick": "true"
}
)
在Component.vue:
import ALL_ITEMS from 'src/data/items.json'
...
const codes = JSON.parse(ALL_ITEMS)
这也失败了。有没有办法通过使用 JavaScript 将此属性更改为不带引号的属性?
注意:为了更清楚,我已经编辑了问题
【问题讨论】:
-
真的有 JSON 参与吗?
-
@ÁlvaroGonzález items.json 来自 python 脚本:
[ { "PropertyOne": "ValueOne", ....., "noTick": "true" }, { ...... } ] -
您不取消引用键,而是取消引用值。如果它是有效的原始类型,即布尔值,则它是有效的 JSON。
-
items.json,尽管有扩展名,但会导出一个 JavaScript 数组(不要与 JSON 混淆,后者是一种文本序列化格式)。在 JSON 中,未加引号的对象键是无效的。在 JavaScript 对象文字中,它 100% 等效于带引号的键(只要它不包含特殊字符,在这种情况下它也是无效的)。我的印象是这个引用/未引用的东西是一个红鲱鱼。
标签: javascript python json vue.js quasar-framework