Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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.lang.String类型的值转换为JSONArray。我不断收到错误_Java_Php_Android_Json_Parsing - Fatal编程技术网

无法将java.lang.String类型的值转换为JSONArray。我不断收到错误

无法将java.lang.String类型的值转换为JSONArray。我不断收到错误,java,php,android,json,parsing,Java,Php,Android,Json,Parsing,下面是php文件结果 数组[{“用户名”:“abc”,“用户密码”:“abc”,“id”:“123456789”}] 下面是通过HTTPConnection获取响应的代码 protected String doInBackground(String... params) { HttpURLConnection conn = null; try { // create connection URL w

下面是php文件结果

数组[{“用户名”:“abc”,“用户密码”:“abc”,“id”:“123456789”}]

下面是通过HTTPConnection获取响应的代码

        protected String doInBackground(String... params) {
        HttpURLConnection conn = null;

        try {
            // create connection
            URL wsURL=new URL(params[0]);
            conn=(HttpURLConnection) wsURL.openConnection();
            conn.setConnectTimeout(15000);;
            conn.setReadTimeout(10000);

            // get data
            InputStream in = new BufferedInputStream(conn.getInputStream());

            // converting InputStream into String

            try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(in,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                in.close();

                String jsonResult=sb.toString();
                return jsonResult;
            }
            catch(Exception e){
                Log.e("log_tag", "Error  converting result " + e.toString());
            }
我用来解析字符串结果的代码是jsonArray和JsonObject

 protected void onPostExecute(String result) {

        try {
            JSONArray jArray = new JSONArray(result);
            JSONObject json = jArray.getJSONObject(0);
            String username = json.getString("username");

        } catch (Exception e) {
            error2 = e.getMessage().toString();
            // TODO: handle exception
            Log.e("log_tag", "Error Parsing Data "+e.toString());
        }
        dialog.dismiss();
    }
出现错误“java.lang.String类型的值无法转换为JSONArray”

请尝试此代码

  try {
            result  = result.replace("Array","");
            JSONArray jArray = new JSONArray(result);
            JSONObject json = jArray.getJSONObject(0);
            String username = json.getString("username");

        } catch (Exception e) {
            error2 = e.getMessage().toString();
            // TODO: handle exception
            Log.e("log_tag", "Error Parsing Data "+e.toString());
        }
        dialog.dismiss();

查看JSON字符串前面的单词“Array”的位置?不应该。对不起,我没听懂你说的话!你能解释一下你的PHP代码是在JSON之前打印出一个数组吗。PHP通过打印文字字符串“array”熟练地处理数组到字符串的转换。修复你的PHP。你能发布完整的PHP响应吗谢谢你的帮助。。。我明白了。。。这是一个愚蠢的检查点…;)
[{“示例”:“此文本愚蠢地包含单词‘Array’”}]
响应将是Array[{“示例”:“此文本愚蠢地包含单词‘Array’”}]。因为数组总是附加在JsonArray之前。我使用的是replace,而不是replaceAll。所以它只会清除第一个事件。是的,我知道了。。。我检查了我的php文件,得到了这个愚蠢的检查点;)谢谢你的帮助!