这是我的代码段。我试图从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)
我不知道我做错了什么。我试图逃避双引号,但不起作用。
谁能让我知道我做错了什么?
提前致谢
答案 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中存在语法错误 重复的密钥。