带有转义字符的字符串转为Json

带有转义字符的字符串转为Json

{"event":"dataChanged","eventTime":"2021-03-19 13:59:41","payload":"{\"dev_id\":\"330017BDA092\",\"dev_msg\":{\"DeviceType\":\"B204\",\"HardVer\":\"1.0.0.0\",\"SoftVer\":\"1.0.0.0\",\"SwitchAmount\":2,\"SerialPortAmount\":3},\"control_msg\":[{\"ControlId\":\"01\",\"ControlType\":\"Pulse electromagnetic valve\",\"ValueType\":0,\"ControlAmountLowBound \":0,\"ControlAmountBound\":1,\"ControlAmount\":0.0,\"unit\":\"\"}],\"sensor_msg\":[{\"SensorNo\":\"01\",\"SensorType\":\"CH4\",\"SensorState\":1,\"Value\":0.0,\"Unit\":\"%LEL\"},{\"SensorNo\":\"02\",\"SensorType\":\"Signal strength\",\"SensorState\":1,\"Value\":16.0,\"Unit\":\"\"},{\"SensorNo\":\"03\",\"SensorType\":\"Communication Module type\",\"SensorState\":1,\"Value\":1.0,\"Unit\":\"\"}]}","termId":77660,"deviceCode":"330017BDA092","deviceType":"0232","deviceIdentify":null}

分析payload时候解析不出是Json对象,是因为payload是一个字符串,反斜线是因为转义双引号’ " ';(直接将payload转为json会解析失败,当然你可以提前操作字符串转为你想要的格式)

Json 获取时候就获取为字符串在转为json,Json方法会自动帮我们转格式;

//谷歌的JSON工具只能转为相应的格式,例如sensor_msg是数组,不能强转为Sting
String payloadString = deviceData.get("payload").getAsString();
JsonObject payload = new JsonParser().parse(payloadString).getAsJsonObject();

转为之后就是这样

{"dev_id":"330017BDA092","dev_msg":{"DeviceType":"B204","HardVer":"1.0.0.0","SoftVer":"1.0.0.0","SwitchAmount":2,"SerialPortAmount":3},"control_msg":[{"ControlId":"01","ControlType":"Pulse electromagnetic valve","ValueType":0,"ControlAmountLowBound ":0,"ControlAmountBound":1,"ControlAmount":0.0,"unit":""}],"sensor_msg":[{"SensorNo":"01","SensorType":"CH4","SensorState":1,"Value":0.0,"Unit":"%LEL"},{"SensorNo":"02","SensorType":"Signal strength","SensorState":1,"Value":16.0,"Unit":""},{"SensorNo":"03","SensorType":"Communication Module type","SensorState":1,"Value":1.0,"Unit":""}]}

数据解析为Json格式

{"event":"dataChanged","eventTime":"2021-03-19 13:59:41","payload":{"dev_id":"330017BDA092","dev_msg":{"DeviceType":"B204","HardVer":"1.0.0.0","SoftVer":"1.0.0.0","SwitchAmount":2,"SerialPortAmount":3},"control_msg":[{"ControlId":"01","ControlType":"Pulse electromagnetic valve","ValueType":0,"ControlAmountLowBound ":0,"ControlAmountBound":1,"ControlAmount":0,"unit":""}],"sensor_msg":[{"SensorNo":"01","SensorType":"CH4","SensorState":1,"Value":0,"Unit":"%LEL"},{"SensorNo":"02","SensorType":"Signal strength","SensorState":1,"Value":16,"Unit":""},{"SensorNo":"03","SensorType":"Communication Module type","SensorState":1,"Value":1,"Unit":""}]},"termId":77660,"deviceCode":"330017BDA092","deviceType":"0232","deviceIdentify":null
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部