diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/adaptor/JsonConverter.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/adaptor/JsonConverter.java index 2836f05164..42b4b2a77c 100644 --- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/adaptor/JsonConverter.java +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/adaptor/JsonConverter.java @@ -133,15 +133,21 @@ public class JsonConverter { .build(); } - public static PostAttributeMsg convertToAttributesProto(JsonElement jsonObject) throws JsonSyntaxException { - if (jsonObject.isJsonObject()) { + public static PostAttributeMsg convertToAttributesProto(JsonElement jsonElement) throws JsonSyntaxException { + if (jsonElement.isJsonObject()) { PostAttributeMsg.Builder result = PostAttributeMsg.newBuilder(); - List keyValueList = parseProtoValues(jsonObject.getAsJsonObject().getAsJsonObject("kv")); + List keyValueList = null; + JsonObject jsonObject = jsonElement.getAsJsonObject(); + if (jsonObject.has("kv") && jsonObject.has("scope")) { + keyValueList = parseProtoValues(jsonObject.getAsJsonObject("kv")); + result.setScope(jsonObject.getAsJsonPrimitive("scope").getAsString()); + } else { + keyValueList = parseProtoValues(jsonObject); + } result.addAllKv(keyValueList); - result.setScope(jsonObject.getAsJsonObject().getAsJsonPrimitive("scope").getAsString()); return result.build(); } else { - throw new JsonSyntaxException(CAN_T_PARSE_VALUE + jsonObject); + throw new JsonSyntaxException(CAN_T_PARSE_VALUE + jsonElement); } }