Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSON.parse()javascript意外标记{_Java_Json - Fatal编程技术网

JSON.parse()javascript意外标记{

JSON.parse()javascript意外标记{,java,json,Java,Json,我得到以下错误: 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) android客户端

我得到以下错误:

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)
android客户端上的代码:

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;
}
}
以及:

@覆盖
公共布尔onTouchEvent(运动事件){
如果(世界!=null&&me!=null&&canvas\u width!=-1&&canvas\u height!=-1){
Camera=Camera.getInstance();
float x=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()=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=新的TouchEventObject(x,y).toJSON();
sendMessage(PacketType.MOUSEMOVE,json);
}
}
返回true;
}
你知道什么会导致这个问题吗??? 这真的很奇怪,因为有好几次这不会抛出错误,但在3或4次成功处理套接字传输后,它确实失败了。
提前谢谢你

事实上@Llama先生是对的。我的代码在一条消息中发送了两个JSON…我将
线程。sleep(100)
放入处理触摸事件的代码中:

@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);
            try {
                Thread.sleep(100);
            } catch(Exception e) {}
        }
    }

    return true;
}
@覆盖
公共布尔onTouchEvent(运动事件){
如果(世界!=null&&me!=null&&canvas\u width!=-1&&canvas\u height!=-1){
Camera=Camera.getInstance();
float x=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()=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=新的TouchEventObject(x,y).toJSON();
sendMessage(PacketType.MOUSEMOVE,json);
试一试{
睡眠(100);
}捕获(例外e){}
}
}
返回true;
}

为什么要用[javascript]标记它?…JSON字符串+JSON字符串!=有效的JSON。你不能一次只解析两个JSON字符串。
console.log(data.toString());
1.因为问题出在javascript部分(节点JS服务器)2.我不明白你的意思,你如何解决它?3.输出是:
“数据:{”数据:{”数据:{”数据:{“数据:{”数据:{”数据:{“数据:{”数据:{“数据:{”数据:{”数据:{“数据:{”数据:{”数据:{”数据:{“数据:{”数据:{”数据:{“数据:{”99.99.99.99.99.99.97.97.97.97192192192192383838383838383838383838383838383838383838383838382828282828282828282828282828282828125.125.125,”,”,”数据:{,,,,,,{{“数据:{“数据:{”数据:{“数据:{”数据:{”数据:{”数据:{”数据:{”数据:{”数据:{“数据:{”数据:{{”数据:{”数据:{{”数据:{数据:{“数据:{”数据:{{{:2}{“数据”:{“我的”:88.43869018554688,“mx”:-293.5949703125},“id”:2}
问题是,5次之后,它的解析结果很好,然后就没有了。
@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;
}
@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);
            try {
                Thread.sleep(100);
            } catch(Exception e) {}
        }
    }

    return true;
}