JSON中的“意外的令牌o”

时间:2016-09-01 04:56:07

标签: java android

我有一个Android应用程序,我正在尝试将数据从editText发送到服务器。我正在尝试将数据打包到JSON:

editTextLogin = (EditText) findViewById(R.id.editTextLogin);
editTextPass = (EditText) findViewById(R.id.editTextPass);
JSONObject logPass = new JSONObject();
try {
    logPass.put("login", editTextLogin.getText().toString());
    logPass.put("pass", editTextPass.getText().toString());
} catch (JSONException e) {
    e.printStackTrace();
}
mSocket.emit("logPass", logPass);

之后我在服务器上收到这些数据并尝试将其解析为JS对象:

socket.on('logPass', function(dataJSON) {
    console.log(dataJSON.admin);
    data = JSON.parse(dataJSON);
});

我可以打印dataJSON,它是:( login: 'admin', pass: '1234' )但是当我试图解析它时我有错误: Unexpected token o

它是什么以及如何解决它?

1 个答案:

答案 0 :(得分:0)

import org.json.simple.JSONObject;

class JsonDemo {

   public static void main(String[] args){
      JSONObject obj = new JSONObject();

      obj.put("login", "admin");
      obj.put("pass", "admin123");

      System.out.print(obj);
   }
}

OR

import org.json.simple.JSONObject;

class JsonDemo {

   public static void main(String[] args){

      JSONObject obj = new JSONObject();

      obj.put("login","admin");
      obj.put("pass","admin123");

      StringWriter out = new StringWriter();
      obj.writeJSONString(out);

      String jsonText = out.toString();
      System.out.print(jsonText);
   }
}

输出

{"login": "admin", "pass":"admin123"}

错误问题

mSocket.emit("logPass", logPass.toString());

我试过这是有效的..