JSONException:Value<;!无法将java.lang类型的DOCTYPE转换为JSONObject

JSONException:Value<;!无法将java.lang类型的DOCTYPE转换为JSONObject,java,android,json,Java,Android,Json,伙计们,你们能帮我一点忙吗,我遇到了这个错误: "JSONException: Value <!DOCTYPE of type java.lang cannot be converted to JSONObject" 下面是我实例化解析器的代码: private void fillSpinnerCabTypes() { List<String> cabTypesSpinner = new ArrayList<String>(); J

伙计们,你们能帮我一点忙吗,我遇到了这个错误:

"JSONException: Value <!DOCTYPE of type java.lang cannot be converted to JSONObject"
下面是我实例化解析器的代码:

private void fillSpinnerCabTypes() {        
    List<String> cabTypesSpinner = new ArrayList<String>();
    JSONParser jsonParser = new JSONParser();
    JSONObject cabTypesObject = jsonParser.getJSONFromUrl(urlTypeCabs);
    try{
        TypesArray = cabTypesObject.getJSONArray(TAG_TYPES);

        for(int i = 0; i < TypesArray.length(); i++){
            JSONObject c = TypesArray.getJSONObject(i);
            String name = c.getString(TAG_NAME);
            cabTypesSpinner.add(name);
        }
    }catch(Exception e ){
        e.printStackTrace();
    }       

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                  android.R.layout.simple_spinner_item, cabTypesSpinner);

     final Spinner spnCabTypes = (Spinner)findViewById(R.id.spnTypeOfCab);
     adapter.setDropDownViewResource(
                            android.R.layout.simple_spinner_dropdown_item);
     spnCabTypes.setAdapter(adapter);
}

此问题来自服务器。
您请求的URL会将数据发送回您,但不是JSON格式。
您得到的例外情况是,服务器发送给您的字符串以以下开头:

<!DOCTYPE 

此问题来自服务器。
您请求的URL会将数据发送回您,但不是JSON格式。
您得到的例外情况是,服务器发送给您的字符串以以下开头:

<!DOCTYPE 

这个问题也出现在我的代码中。解决方法不同。它是由于webservice的拼写错误造成的

解决方案1:

例如,url是真实的

我用过

解决方案2: 使用loopj库。它准确地给出了已解释的错误

AsyncHttpClient client = new AsyncHttpClient();
        client.post(str , localRequestParams, new AsyncHttpResponseHandler() {

            @Override
            public void onFinish() {
                super.onFinish();
                Log.i("onFinish","onFinish");
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                Log.i("onSuccess","onSuccess");



            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                Log.i("onFailure","onFailure");


            }

        });

这个问题也出现在我的代码中。解决方法不同。它是由于webservice的拼写错误造成的

解决方案1:

例如,url是真实的

我用过

解决方案2: 使用loopj库。它准确地给出了已解释的错误

AsyncHttpClient client = new AsyncHttpClient();
        client.post(str , localRequestParams, new AsyncHttpResponseHandler() {

            @Override
            public void onFinish() {
                super.onFinish();
                Log.i("onFinish","onFinish");
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                Log.i("onSuccess","onSuccess");



            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                Log.i("onFailure","onFailure");


            }

        });


显示你的日志。让我知道你从php脚本中得到json值了吗?如果是,请告诉我json的格式。发布日志和json数据。请发布json。。没有看到json格式。。我们无法帮助您此错误通常发生在您的json数据格式不正确时,请检查此副本粘贴您的json数据并查看其是否为json格式请使用
EntityUtils.toString(httpResponse.getEntity())
而不是忽略服务器发送的编码的手写代码,在异常时不关闭,并将行尾转换为
\n
。另外,当局部变量对
ìs
jObj
json
同样有效时,不要使用静态变量。显示您的日志。让我知道你从php脚本中得到json值了吗?如果是,请告诉我json的格式。发布日志和json数据。请发布json。。没有看到json格式。。我们无法帮助您此错误通常发生在您的json数据格式不正确时,请检查此副本粘贴您的json数据并查看其是否为json格式请使用
EntityUtils.toString(httpResponse.getEntity())
而不是忽略服务器发送的编码的手写代码,在异常时不关闭,并将行尾转换为
\n
。另外,当局部变量对
ìs
jObj
json
同样有效时,不要使用静态变量。嗨,西蒙,我遇到了与上述类似的问题。如果我发布了一个问题,你能帮我吗?@Moudiz当然,但如果这与此问题不符,您必须创建另一个问题。感谢您的回复,我的问题与此类似。我想连接到服务器,但我得到了同样的错误上面,我不知道哪里是错误的。如果我发布了一个问题,你能看看它,看看你是否能帮助我吗?好的,我会添加所有内容,让你清楚。但是我需要一点时间,当我把问题贴在这里时,我会通知你的。。谢谢嗨伙计你能查一下我的问题吗?你好,西蒙,我遇到了一个类似于上述内容的问题。如果我发布了一个问题,你能帮我吗?@Moudiz,当然,但如果这与此问题不符,你将不得不创建另一个问题。谢谢你的回复,我的问题与此类似。我想连接到服务器,但我得到了同样的错误上面,我不知道哪里是错误的。如果我发布了一个问题,你能看看它,看看你是否能帮助我吗?好的,我会添加所有内容,让你清楚。但是我需要一点时间,当我把问题贴在这里时,我会通知你的。。谢谢嗨伙计你能查一下我的问题吗?
AsyncHttpClient client = new AsyncHttpClient();
        client.post(str , localRequestParams, new AsyncHttpResponseHandler() {

            @Override
            public void onFinish() {
                super.onFinish();
                Log.i("onFinish","onFinish");
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                Log.i("onSuccess","onSuccess");



            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                Log.i("onFailure","onFailure");


            }

        });