【发布时间】:2015-11-10 14:38:37
【问题描述】:
这是我的代码 sn-p。我正在尝试从 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) 在 org.json.JSONObject.getString(JSONObject.java:586) 在 PubNub.Subscribe$1.successCallback(Subscribe.java:45) 在 com.pubnub.api.Callback.successWrapperCallback(未知来源)在 com.pubnub.api.PubnubCore.invokeSubscribeCallback(未知来源)在 com.pubnub.api.PubnubCore.access$1100(Unknown Source) at com.pubnub.api.PubnubCore$14.handleResponse(Unknown Source) at com.pubnub.api.SubscribeWorker.process(未知来源)在 com.pubnub.api.Worker.run(未知来源)在 java.lang.Thread.run(Thread.java:745)
我不知道我做错了什么。我尝试转义双引号,但不起作用。
谁能告诉我我做错了什么?
在此先感谢
【问题讨论】:
-
你确定你解密正确吗?
-
现在的解密只是一个虚拟函数,它只是简单地返回输入值。
-
根据您提供的信息,您的代码应该是正确的,但我认为还有其他问题,请尝试记录
jsonMsg.toString() -
@meda 这很奇怪。
jsonMsg.toString()输出一对空括号{}。顺便说一句,我现在已经删除了解密功能。现在message对象直接进入jsonMsg对象 -
好的,所以在
message上使用.toString()或者这意味着message已经是JSON 对象