...
|
...
|
@@ -22,6 +22,7 @@ import org.thingsboard.server.common.data.kv.BaseAttributeKvEntry; |
22
|
22
|
import org.thingsboard.server.common.data.kv.BasicTsKvEntry;
|
23
|
23
|
import org.thingsboard.server.common.data.kv.BooleanDataEntry;
|
24
|
24
|
import org.thingsboard.server.common.data.kv.DoubleDataEntry;
|
|
25
|
+import org.thingsboard.server.common.data.kv.JsonDataEntry;
|
25
|
26
|
import org.thingsboard.server.common.data.kv.KvEntry;
|
26
|
27
|
import org.thingsboard.server.common.data.kv.LongDataEntry;
|
27
|
28
|
import org.thingsboard.server.common.data.kv.StringDataEntry;
|
...
|
...
|
@@ -73,15 +74,28 @@ public class RestJsonConverter { |
73
|
74
|
if (!value.isObject()) {
|
74
|
75
|
if (value.isBoolean()) {
|
75
|
76
|
return new BooleanDataEntry(key, value.asBoolean());
|
76
|
|
- } else if (value.isDouble()) {
|
77
|
|
- return new DoubleDataEntry(key, value.asDouble());
|
78
|
|
- } else if (value.isLong()) {
|
79
|
|
- return new LongDataEntry(key, value.asLong());
|
80
|
|
- } else {
|
|
77
|
+ } else if (value.isNumber()) {
|
|
78
|
+ return parseNumericValue(key, value);
|
|
79
|
+ } else if (value.isTextual()) {
|
81
|
80
|
return new StringDataEntry(key, value.asText());
|
|
81
|
+ } else {
|
|
82
|
+ throw new RuntimeException(CAN_T_PARSE_VALUE + value);
|
82
|
83
|
}
|
83
|
84
|
} else {
|
84
|
|
- throw new RuntimeException(CAN_T_PARSE_VALUE + value);
|
|
85
|
+ return new JsonDataEntry(key, value.toString());
|
|
86
|
+ }
|
|
87
|
+ }
|
|
88
|
+
|
|
89
|
+ private static KvEntry parseNumericValue(String key, JsonNode value) {
|
|
90
|
+ if (value.isFloatingPointNumber()) {
|
|
91
|
+ return new DoubleDataEntry(key, value.asDouble());
|
|
92
|
+ } else {
|
|
93
|
+ try {
|
|
94
|
+ long longValue = Long.parseLong(value.toString());
|
|
95
|
+ return new LongDataEntry(key, longValue);
|
|
96
|
+ } catch (NumberFormatException e) {
|
|
97
|
+ throw new IllegalArgumentException("Big integer values are not supported!");
|
|
98
|
+ }
|
85
|
99
|
}
|
86
|
100
|
}
|
87
|
101
|
} |
...
|
...
|
|