JSON解析错误。即使密钥存在,也找不到密钥

时间:2015-11-10 14:38:38

标签: java json parsing pubnub

这是我的代码段。我试图从PUBNUB发送一个JSON消息到我的系统并解析它。我的关键是“CMD”。 这是我从pubnub {"CMD":"hey"}

发送的内容
public void successCallback(String channel, Object message) {


   Object PlainTextMessage = new AESDecrypt().Decrypt(message);
   JSONObject jsonMsg = new JSONObject(PlainTextMessage);
   try {
      String command = jsonMsg.getString("CMD");
      System.out.println(command);
   } catch (JSONException e) {
      // TODO Auto-generated catch block
   e.printStackTrace();
}

这是我得到的错误

  

org.json.JSONException:找不到JSONObject [“CMD”]。在   org.json.JSONObject.get(JSONObject.java:405)at   org.json.JSONObject.getString(JSONObject.java:586)at   PubNub.Subscribe $ 1.successCallback(Subscribe.java:45)at   com.pubnub.api.Callback.successWrapperCallback(未知来源)at   com.pubnub.api.PubnubCore.invokeSubscribeCallback(未知来源)at at   com.pubnub.api.PubnubCore.access $ 1100(未知来源)at   com.pubnub.api.PubnubCore $ 14.handleResponse(未知来源)at at   com.pubnub.api.SubscribeWorker.process(未知来源)at   com.pubnub.api.Worker.run(未知来源)at   java.lang.Thread.run(Thread.java:745)

我不知道我做错了什么。我试图逃避双引号,但不起作用。 谁能让我知道我做错了什么?
提前致谢

1 个答案:

答案 0 :(得分:2)

请参阅.org.json

的文档

http://www.json.org/javadoc/org/json/JSONObject.html#JSONObject(java.lang.String)

JSONObject的构造函数,接受String而不是Object,因此需要强制转换

<强>的JSONObject

public JSONObject(java.lang.String source)
           throws JSONException
  

从源JSON文本字符串构造JSONObject。这是   最常用的JSONObject构造函数。

<强>参数:

  

source - 以{(左括号)开头并以}结尾的字符串   (右支撑)。抛出:

     

JSONException - 如果源字符串或a中存在语法错误   重复的密钥。