Java JSONObject在Node,js应用程序中接收时不加引号

我在Android应用程序和Node.js API之间使用Socket.IO。 我需要序列化一些对象,所以我必须在我的Android应用程序中使用JSONObject。

问题是,当接收每个对象服务器端时,JSON数据是不可parsing的,因为“值”在它们的名字上缺less引号。

客户:

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); } } 

发送到NodeJS应用程序的JSON可能已经被parsing。

你可以通过检查它的types来确认它:

 console.log(typeof data); 

如果输出是object那么它已经被parsing。