я получаю следующее сообщение об ошибке:JSON.parse() Javascript Неожиданный маркер {
undefined:2
{"data":{"my":88.43869018554688,"mx":-293.594970703125},"id":2}
^
SyntaxError: Unexpected token {
at Object.parse (native)
at Socket.<anonymous>(/home/lchost/fishy.io/server/custom_modules/game.js:34:23)
мой код на сервере:
socket.on('data', function(data) {
console.log(data.toString());
var json = JSON.parse(data.toString());
...
код на андроид клиента:
public class TouchEventObject implements JSONable {
public float mx;
public float my;
public TouchEventObject(float mx, float my) {
this.mx = mx;
this.my = my;
}
@Override
public JSONObject toJSON() {
JSONObject json = new JSONObject();
try {
json.put("mx", mx);
json.put("my", my);
} catch(Exception e) {};
return json;
}
}
и :
@Override
public boolean onTouchEvent(MotionEvent event) {
if(world != null && me != null && canvas_width != -1 && canvas_height != -1) {
Camera camera = Camera.getInstance();
float x = camera.getX() <= 0 ? event.getX() - me.x*camera.getScale() : camera.getX() >= world.WIDTH - canvas_width ? ((world.WIDTH - canvas_width) + event.getX()) - me.x*camera.getScale() : event.getX() - canvas_width/2;
float y = camera.getY() <= 0 ? event.getY() - me.y*camera.getScale() : camera.getY() >= world.HEIGHT - canvas_height ? ((world.HEIGHT - canvas_height) + event.getY()) - me.y*camera.getScale() : event.getY() - canvas_height/2;
if (client != null && client.isConnected()) {
JSONObject json = new TouchEventObject(x, y).toJSON();
client.sendMessage(PacketType.MOUSEMOVE, json);
}
}
return true;
}
любые идеи, что может вызвать проблему ??? это действительно странно, потому что несколько раз это не вызывает ошибку, но после 3 или 4 успешно обработанных передач сокетов это не сработает. заблаговременно
Почему бы вы пометить его с [JavaScript] .. – nicael
JSON строки + строка JSON?! = действительный JSON. Вы не можете просто разобрать две строки JSON сразу. –
Что является результатом 'console.log (data.toString());' – mhu