Types 为什么属性类型从float变为number?
我注意到,当我在Orion中使用一些“float”属性注册实体时,在一些更新之后,类型被更改为“number”而不是“float” 例如:Types 为什么属性类型从float变为number?,types,attributes,fiware,fiware-orion,Types,Attributes,Fiware,Fiware Orion,我注意到,当我在Orion中使用一些“float”属性注册实体时,在一些更新之后,类型被更改为“number”而不是“float” 例如: { "id":"my_entity", "type":"entity_type", "attr1":{ "type":"float", "value":"0.54", "metadata":{}}, "attr2":{ "type":"Number", "value":44.3,
{ "id":"my_entity",
"type":"entity_type",
"attr1":{
"type":"float",
"value":"0.54",
"metadata":{}},
"attr2":{
"type":"Number",
"value":44.3,
"metadata":{}}}]
在本例中,注册my_实体时,两种类型的属性都是“float”。当对attr2的值进行某些更新时,其类型更改为“Number”。这是正确的行为吗?我认为这是由于默认键入造成的,如中的“部分表示”部分所述: 请求中可以省略属性/元数据
类型
。当在属性/元数据创建或更新操作中省略时,将根据值为类型使用默认值:
- 如果值是字符串,则使用类型
Text
- 如果值是一个数字,则使用类型
number
- 如果值是布尔值,则使用类型
boolean
- 如果值是对象或数组,则使用
StructuredValue
- 如果值为null,则使用
None
PUT /v2/entities/my_entity/attrs/attr2
{
"value": 44.3
}
PUT /v2/entities/my_entity/attrs/attr2
{
"type": "float",
"value": 44.3
}
而type
该有效负载中的省略将触发默认的键入功能
基本上,有两种解决方案:
类型
:
PUT /v2/entities/my_entity/attrs/attr2
{
"value": 44.3
}
PUT /v2/entities/my_entity/attrs/attr2
{
"type": "float",
"value": 44.3
}
我选择了第一个选项,即在请求中使用“type”。这对我来说更好,因为我一次更新多个属性(请求)。我更新了答案,因为代码中缺少“类型”。=)谢谢。你说得对。。。很抱歉我已经采纳了你的建议,添加了
“
(即“float”
)。