【问题标题】:JSON parsing error. Key not found even though it existsJSON 解析错误。即使存在也找不到密钥
【发布时间】: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 对象

标签: java json parsing pubnub


【解决方案1】:

请参阅.org.json 的文档

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

JSONObject 的构造函数,接受一个字符串而不是一个对象,所以强制转换是必要的

JSONObject

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

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

参数:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2013-01-04
    • 2018-08-17
    相关资源
    最近更新 更多