我在Android应用和Node.js API之间使用Socket.IO。 我需要序列化一些对象,所以我必须在我的Android应用程序中使用JSONObject。
问题在于,当接收每个对象服务器端时,JSON数据是不可解析的,因为"值"在他们的名字上缺少引号。
客户:
obj = new JSONObject();
obj.put("lon", 2.1459905000000004);
obj.put("lat", 48.8367079);
服务器:
socket.on('position_changed', function(data, reply) {
console.log(data);
// Outputs { lon: 2.1459905000000004, lat: 48.8367079 }
// Expected { "lon": 2.1459905000000004, "lat": 48.8367079 }
try {
newPosition = JSON.parse(data);
} catch (e) {
console.log(e);
}
}
答案 0 :(得分:2)
发送到NodeJS应用程序的JSON可能已经被解析了。
您可以通过检查其类型来确认:
console.log(typeof data);
如果输出为object
,那么它已经被解析了。