是否可以在 "keen" 对象中添加标准属性以外的其他用户定义属性?
Is it possible to add additional user defined properties other than standard properties in "keen" object?
至于每个敏锐事件,敏锐对象会自动附加到敏锐对象的结构中。
var keen_event = {
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939"
},
other properties...
}
但我想在 keen 对象中添加其他自定义属性;
{
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
"event_type" : "some_values",
...
}
}
我尝试在 keen 上添加其他属性,而不是将 keen_event 编码为:
var encodedData = base64.encode(JSON.stringify(keen_event));
然后将编码数据传递给 keen api 以创建事件,但我收到错误消息:"Invalid property for keen namespace. You used: \'event_type\'"。
有解决办法吗?在创建 keen 事件时,是否可以在“keen”对象上添加标准属性以外的自定义键值属性?提前致谢。
var data = {
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
},
"keen1": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
},
"keen2": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
}
}
var newObj = {}
Object.keys(data).map((element)=> {
var t = {
...data[element],
"event_type" : "some_values",
}
newObj[element] = t
return element
})
console.log(newObj)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.min.js"></script>
这可能有帮助
尝试这样的事情
var keenEvent = {
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939"
}
};
keenEvent.keen.myNewProperty = "its value";
keenEvent.keen.myNewProperty2 = "its value2";
不,这在 Keen API 中是不允许的。 keen
命名空间是保留的,在写入事件时,只能在该命名空间中指定少数属性(例如 keen.timestamp
或 keen.addons
)。保留命名空间是为了让 Keen 在将来添加新的特殊用途的属性,而不用担心与用户定义的属性发生冲突。 (另请参阅:https://keen.io/docs/api/#the-keen-object。)
也许值得退一步问:为什么要将自定义属性添加到 keen
命名空间?它能让你做哪些你用 my.keen.x
或 keen_custom.x
做不到的事情?
仅供参考:我是 Keen 的平台工程师 :)
至于每个敏锐事件,敏锐对象会自动附加到敏锐对象的结构中。
var keen_event = {
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939"
},
other properties...
}
但我想在 keen 对象中添加其他自定义属性;
{
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
"event_type" : "some_values",
...
}
}
我尝试在 keen 上添加其他属性,而不是将 keen_event 编码为:
var encodedData = base64.encode(JSON.stringify(keen_event));
然后将编码数据传递给 keen api 以创建事件,但我收到错误消息:"Invalid property for keen namespace. You used: \'event_type\'"。
有解决办法吗?在创建 keen 事件时,是否可以在“keen”对象上添加标准属性以外的自定义键值属性?提前致谢。
var data = {
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
},
"keen1": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
},
"keen2": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939",
}
}
var newObj = {}
Object.keys(data).map((element)=> {
var t = {
...data[element],
"event_type" : "some_values",
}
newObj[element] = t
return element
})
console.log(newObj)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.min.js"></script>
这可能有帮助
尝试这样的事情
var keenEvent = {
"keen": {
"created_at": "2012-12-14T20:24:01.123000+00:00",
"timestamp": "2012-12-14T20:24:01.123000+00:00",
"id": "asd9fadifjaqw9asdfasdf939"
}
};
keenEvent.keen.myNewProperty = "its value";
keenEvent.keen.myNewProperty2 = "its value2";
不,这在 Keen API 中是不允许的。 keen
命名空间是保留的,在写入事件时,只能在该命名空间中指定少数属性(例如 keen.timestamp
或 keen.addons
)。保留命名空间是为了让 Keen 在将来添加新的特殊用途的属性,而不用担心与用户定义的属性发生冲突。 (另请参阅:https://keen.io/docs/api/#the-keen-object。)
也许值得退一步问:为什么要将自定义属性添加到 keen
命名空间?它能让你做哪些你用 my.keen.x
或 keen_custom.x
做不到的事情?
仅供参考:我是 Keen 的平台工程师 :)