fix: 盐度取值错误,问题解决。
This commit is contained in:
@@ -188,8 +188,12 @@ public class DeviceDataHandler {
|
|||||||
try {
|
try {
|
||||||
JSONObject data = new JSONObject(payload, JSONConfig.create().setIgnoreCase(false));
|
JSONObject data = new JSONObject(payload, JSONConfig.create().setIgnoreCase(false));
|
||||||
|
|
||||||
// 解析飞燕平台消息格式
|
// 解析飞燕平台消息格式(保持ignoreCase=false,避免子对象丢失大小写配置)
|
||||||
JSONObject params = data.getJSONObject("params");
|
JSONObject params = null;
|
||||||
|
Object paramsObj = data.get("params");
|
||||||
|
if (paramsObj != null) {
|
||||||
|
params = new JSONObject(paramsObj.toString(), JSONConfig.create().setIgnoreCase(false));
|
||||||
|
}
|
||||||
|
|
||||||
// 从Topic中解析产品Key和设备名称
|
// 从Topic中解析产品Key和设备名称
|
||||||
// Topic格式: /sys/{ProductKey}/{DeviceName}/thing/event/property/post
|
// Topic格式: /sys/{ProductKey}/{DeviceName}/thing/event/property/post
|
||||||
@@ -299,7 +303,12 @@ public class DeviceDataHandler {
|
|||||||
try {
|
try {
|
||||||
JSONObject data = new JSONObject(payload, JSONConfig.create().setIgnoreCase(false));
|
JSONObject data = new JSONObject(payload, JSONConfig.create().setIgnoreCase(false));
|
||||||
|
|
||||||
JSONObject params = data.getJSONObject("params");
|
// 保持ignoreCase=false,避免子对象丢失大小写配置
|
||||||
|
JSONObject params = null;
|
||||||
|
Object paramsObj = data.get("params");
|
||||||
|
if (paramsObj != null) {
|
||||||
|
params = new JSONObject(paramsObj.toString(), JSONConfig.create().setIgnoreCase(false));
|
||||||
|
}
|
||||||
|
|
||||||
// 从Topic中解析产品Key、设备名称和事件标识符
|
// 从Topic中解析产品Key、设备名称和事件标识符
|
||||||
// Topic格式: /sys/{ProductKey}/{DeviceName}/thing/event/{EventIdentifier}/post
|
// Topic格式: /sys/{ProductKey}/{DeviceName}/thing/event/{EventIdentifier}/post
|
||||||
@@ -2119,6 +2128,8 @@ public class DeviceDataHandler {
|
|||||||
: params.getDouble("ph");
|
: params.getDouble("ph");
|
||||||
sensorData.setPh(value);
|
sensorData.setPh(value);
|
||||||
}
|
}
|
||||||
|
// 注意:忽略大小写时 containsKey("salinity") 会误匹配 salinitySet,
|
||||||
|
// 已在取 params 时设置 ignoreCase=false,精确匹配 "salinity" key,不会取到 salinitySet
|
||||||
if (params.containsKey("salinity")) {
|
if (params.containsKey("salinity")) {
|
||||||
sensorData.setSalinity(params.getDouble("salinity"));
|
sensorData.setSalinity(params.getDouble("salinity"));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user