Google Data Studio - 创建您自己的可视化 - config.json 问题
Google Data Studio - Creating your own visualization - config.json problem
我的问题是 index.json
{
"data": [
{
"id": "concepts",
"label": "Fields",
"elements": [
{
"id": "dim",
"label": "label, quadrant, ring, link, active, moved",
"type": "DIMENSION",
"options": {
"min": 6,
"max": 6
}
}
]
}
],
"style": [
...here is unrelated code...
{
"id": "offsets",
"label": "Legend-Offset in pixel",
"elements": [
{
"id": "offset_0",
"label": "Offset_0 (-500 to 500)",
"type": "INTERVAL"
},
{
"id": "offset_1",
"label": "Offset_1 (-500 to 500)",
"type": "INTERVAL"
},
{
"id": "offset_2",
"label": "Offset_2 (-500 to 500)",
"type": "INTERVAL"
},
{
"id": "offset_3",
"label": "Offset_3 (-500 to 500)",
"type": "INTERVAL"
}
]
}
]
}
在config reference中说,间隔需要有这种形式:
- INTERVAL 呈现间隔选择器。值为整数。数字 0
并且应该有一个选项对象。
这意味着样式元素应该看起来像这样:
{
"id": "offset_3",
"label": "Offset_3 (-500 to 500)",
"type": "INTERVAL",
"defaultValue": 0,
"options": {
"min": -500,
"max": 500
}
}
这就是 dscc-scripts 验证希望它看起来像的样子:
{
"id": "offset_3",
"label": "Offset_3 (-500 to 500)",
"defaultValue": "0",
"type": "TEXTINPUT"
}
可悲的是,执行“应该”会破坏 dscc 脚本,错误告诉我,应该没有 选项,并且 defaultValue 需要是一个字符串。
好吧,按照上一个代码片段中的做法解决了这个问题,我确实可以构建代码并将其推送到 google 存储桶,遗憾的是,这对我现在完全没有帮助数据Studio(浏览器)出现错误,告诉我“间隔”值需要是数字类型。
知道如何解决这个问题吗?
我找到了比使用 type: "TEXTFIELD":
更好的解决方案
刚刚更改了 dscc-scripts 包用于适应主页的架构。 (所以我把它从字符串改为数字)
我真的不明白为什么他们自己不这样做,因为他们将类型从字符串更改为数字,但是 nvm 那。
这是我在 schemas.js 中更改的内容 (node_modules/@google/dscc-scripts/builds/viz/schemas.js):
(请参阅默认值下的类型...)
...
interval: {
type: 'object',
additionalProperties: false,
required: ['id', 'label', 'type'],
properties: {
id: { type: 'string' },
label: { type: 'string' },
type: {
type: 'string',
enum: ['INTERVAL'],
},
defaultValue: { type: 'number' },
},
},
...
#QuestionClosed
我的问题是 index.json
{
"data": [
{
"id": "concepts",
"label": "Fields",
"elements": [
{
"id": "dim",
"label": "label, quadrant, ring, link, active, moved",
"type": "DIMENSION",
"options": {
"min": 6,
"max": 6
}
}
]
}
],
"style": [
...here is unrelated code...
{
"id": "offsets",
"label": "Legend-Offset in pixel",
"elements": [
{
"id": "offset_0",
"label": "Offset_0 (-500 to 500)",
"type": "INTERVAL"
},
{
"id": "offset_1",
"label": "Offset_1 (-500 to 500)",
"type": "INTERVAL"
},
{
"id": "offset_2",
"label": "Offset_2 (-500 to 500)",
"type": "INTERVAL"
},
{
"id": "offset_3",
"label": "Offset_3 (-500 to 500)",
"type": "INTERVAL"
}
]
}
]
}
在config reference中说,间隔需要有这种形式:
- INTERVAL 呈现间隔选择器。值为整数。数字 0
并且应该有一个选项对象。
这意味着样式元素应该看起来像这样:
{
"id": "offset_3",
"label": "Offset_3 (-500 to 500)",
"type": "INTERVAL",
"defaultValue": 0,
"options": {
"min": -500,
"max": 500
}
}
这就是 dscc-scripts 验证希望它看起来像的样子:
{
"id": "offset_3",
"label": "Offset_3 (-500 to 500)",
"defaultValue": "0",
"type": "TEXTINPUT"
}
可悲的是,执行“应该”会破坏 dscc 脚本,错误告诉我,应该没有 选项,并且 defaultValue 需要是一个字符串。
好吧,按照上一个代码片段中的做法解决了这个问题,我确实可以构建代码并将其推送到 google 存储桶,遗憾的是,这对我现在完全没有帮助数据Studio(浏览器)出现错误,告诉我“间隔”值需要是数字类型。
知道如何解决这个问题吗?
我找到了比使用 type: "TEXTFIELD":
更好的解决方案刚刚更改了 dscc-scripts 包用于适应主页的架构。 (所以我把它从字符串改为数字) 我真的不明白为什么他们自己不这样做,因为他们将类型从字符串更改为数字,但是 nvm 那。
这是我在 schemas.js 中更改的内容 (node_modules/@google/dscc-scripts/builds/viz/schemas.js):
(请参阅默认值下的类型...)
...
interval: {
type: 'object',
additionalProperties: false,
required: ['id', 'label', 'type'],
properties: {
id: { type: 'string' },
label: { type: 'string' },
type: {
type: 'string',
enum: ['INTERVAL'],
},
defaultValue: { type: 'number' },
},
},
...
#QuestionClosed