Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为JSON时未终止的对象_Java_Android_Json_Escaping_Jsonobject - Fatal编程技术网

Java 将字符串转换为JSON时未终止的对象

Java 将字符串转换为JSON时未终止的对象,java,android,json,escaping,jsonobject,Java,Android,Json,Escaping,Jsonobject,我在安卓工作室工作,我有一个字符串变量,叫做sResponse(如下)。根据调试器,它保存以下值: { "responseData": { "emotion":"", "lastinput":{actionResult={"value":{"label":"green","key":"1"},"result":"success","action":"displayClickableList"}, "answer":"Sorry, I did not unders

我在安卓工作室工作,我有一个字符串变量,叫做sResponse(如下)。根据调试器,它保存以下值:

 {
    "responseData": {
    "emotion":"",
    "lastinput":{actionResult={"value":{"label":"green","key":"1"},"result":"success","action":"displayClickableList"},
    "answer":"Sorry, I did not understand.",
    "link": {
    "href":"",
    "target":""
    },
    "extraData": {

    },
    "responseSession": {
    "id":"c4a5ef257851a991eb32c69132c9",
    "transaction":"4"
    },
    "responseDetails": "null",
    "responseStatus": "200",
    "applicationUrl": "http://noki-dev.cloud.com:90/moto-1/"
    }
    }
当我尝试用以下方式初始化JSONObject时:

jResponse=new JSONObject(sResponse);
…我的日志中出现以下异常:

>>>>>>>>>Thread EXCEPTION1: Response with invalid JSON format: , FrontendActivity.java L:421 ***** *org.json.JSONException: Unterminated object at character 502 of : sResponse

我怀疑URL中的那些//引起了麻烦。我不擅长转义JSON字符。如何从前面的字符串中获取有效的JSONObject?在我的方法中,您可以发现什么问题?

问题是由于
=
actionResult
附近签名,以及
actionResult
没有用双引号括起来,并且您没有正确关闭json字符串造成的

将Json字符串替换为:

{
    "responseData": {
    "emotion":"",
    "lastinput":{"actionResult":{"value":{"label":"green","key":"1"},"result":"success","action":"displayClickableList"},
    "answer":"Sorry, I did not understand.",
    "link": {
    "href":"",
    "target":""
    },
    "extraData": {

    },
    "responseSession": {
    "id":"c4a5ef257851a991eb32c69132c9",
    "transaction":"4"
    },
    "responseDetails": "null",
    "responseStatus": "200",
    "applicationUrl": "http://noki-dev.cloud.com:90/role-va-1/"
    }
    }
}
并在字符串末尾添加
}

您可以使用以下联机工具跟踪错误:


您错过了响应末尾的最后一个结束卷曲。 只需在最后一行添加
}

更正的json响应

{
  "responseData": {
    "emotion": "",
    "lastinput": {
      actionResult: {
        "value": {
          "label": "green",
          "key": "1"
        },
        "result": "success",
        "action": "displayClickableList"
      },
      "answer": "Sorry, I did not understand.",
      "link": {
        "href": "",
        "target": ""
      },
      "extraData": {

      },
      "responseSession": {
        "id": "c4a5ef257851a991eb32c69132c9",
        "transaction": "4"
      },
      "responseDetails": "null",
      "responseStatus": "200",
      "applicationUrl": "http://noki-dev.cloud.com:90/moto-1/"
    }
  }
}

您有不正确的json请更正json响应中的
actionResult=
对象,因为它指出了错误@NambiNarayanan,该值来自一个backed(可能是硬编码?),但请不要否决!好的,我删除了我的投票,但是在以后发布之前检查你的问题。@Josh如果对你有用的话,你应该接受正确的答案。谢谢,你说得对,我已经挣扎了几个小时,我的大眼睛根本看不到错误!!但它来自后端。