Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
为什么可以';我不能在Android中使用JsonArray检索数据吗?_Android_Json - Fatal编程技术网

为什么可以';我不能在Android中使用JsonArray检索数据吗?

为什么可以';我不能在Android中使用JsonArray检索数据吗?,android,json,Android,Json,我已将数据插入名为tsk的服务器表中。现在我想在我的Android代码中使用JsonArray检索它。我使用了下面的php代码,我可以在网页上看到解析后的数组。问题是我得到了错误04-04 01:36:18.198:E/log_标记(2254):错误解析数据org.json.JSONException:java.lang.String类型的值无法在错误日志中转换为JSONArray 我的数据库字段如下所示: tid是一个Int设置为主键和自动递增。 stat是字段长度设置为100的文本。 r是长

我已将数据插入名为
tsk
的服务器表中。现在我想在我的Android代码中使用
JsonArray
检索它。我使用了下面的
php代码
,我可以在网页上看到解析后的数组。问题是我得到了错误
04-04 01:36:18.198:E/log_标记(2254):错误解析数据org.json.JSONException:java.lang.String类型的值无法在错误日志中转换为JSONArray

我的数据库字段如下所示:
tid
是一个
Int
设置为
主键
自动递增
stat
是字段长度设置为100的
文本。
r
是长度设置为100的
VarChar

我在Android中的Json检索代码如下:

    String result = null;
    InputStream is = null;
    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("myurl");
        ArrayList<NameValuePair>  nameValuePairs = new ArrayList<NameValuePair>();
       HttpResponse response = httpclient.execute(httppost); 
        HttpEntity entity = response.getEntity();
        is = entity.getContent();

        Log.e("log_tag", "connection success ");

}
    catch(Exception e)
    {
            Log.e("log_tag", "Error in http connection "+e.toString());
            Toast.makeText(getActivity(), "Connection fail", Toast.LENGTH_SHORT).show();

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

            }
            is.close();

            result=sb.toString();
    }
    catch(Exception e)
    {
           Log.e("log_tag", "Error converting result "+e.toString());
        Toast.makeText(getActivity(), " Input reading fail", Toast.LENGTH_SHORT).show();

    }
    try
    {
        JSONArray jArray = new JSONArray(result);
        String s="",s1,s2,s3,s4,s5;
        Log.w("Lengh",""+jArray.length());
          for(int i=0;i<jArray.length();i++){

            //  final ListView lview=(ListView) rootView.findViewById(R.id.listViewmytask);
            JSONObject json_data = jArray.getJSONObject(i);

                s=json_data.getString("stat");
                Log.i("taskid",""+s);
  }
  }

  catch(JSONException e)
    {
            Log.e("log_tag", "Error parsing data "+e.toString());
            Toast.makeText(getActivity(), "JsonArray fail", Toast.LENGTH_SHORT).show();
    }
字符串生成器
result
显示以下值:但其中有一些未定义的字符,如i`?(倒问号)


这可能是因为JSON响应格式不正确。您能否发布JSON响应以更好地理解它?您可以在此URL中验证JSON响应-


您可以使用这个简单的JSON解析器解析JSON响应-。

这可能是因为JSON响应格式不正确。您能否发布JSON响应以更好地理解它?您可以在此URL中验证JSON响应-


您可以使用这个简单的JSON解析器解析JSON响应-。

这可能是因为JSON响应格式不正确。您能否发布JSON响应以更好地理解它?您可以在此URL中验证JSON响应-


您可以使用这个简单的JSON解析器解析JSON响应-。

这可能是因为JSON响应格式不正确。您能否发布JSON响应以更好地理解它?您可以在此URL中验证JSON响应-


您可以使用这个简单的JSON解析器来解析您的JSON响应-。

似乎服务器没有返回jsonArray,请确保响应的第一个字母,如果它开始{应该是JSON对象,如果服务器只返回'[]'然后,该服务器返回空数据,无法解析为json数组。

似乎服务器没有返回jsonArray,请确保响应的第一个字母,如果它开始{应该是json对象,并且如果服务器仅返回'[]'然后,该服务器返回空数据,无法解析为json数组。

似乎服务器没有返回jsonArray,请确保响应的第一个字母,如果它开始{应该是json对象,并且如果服务器仅返回'[]'然后此服务器返回空数据,无法解析为json数组。

似乎服务器没有返回jsonArray,请确保响应的第一个字母,如果它开始{而不是它应该是json对象,并且如果服务器仅返回'[],则此服务器返回空数据,无法解析为json数组。

更改此代码并重试

StringBuilder sb = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8));
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }

        } finally {
            is.close();
            reader.close();
        }
        result=sb.toString();

更改此代码并重试

StringBuilder sb = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8));
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }

        } finally {
            is.close();
            reader.close();
        }
        result=sb.toString();

更改此代码并重试

StringBuilder sb = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8));
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }

        } finally {
            is.close();
            reader.close();
        }
        result=sb.toString();

更改此代码并重试

StringBuilder sb = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, HTTP.UTF_8));
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }

        } finally {
            is.close();
            reader.close();
        }
        result=sb.toString();

显示您的json响应..请检查json响应显示您的json响应..请检查json响应显示您的json响应..请检查json响应显示您的json响应..请检查json响应pls检查json响应response@user3256145您的JSON响应似乎很好。但是,不能保证响应始终具有e数据。我建议你也处理这个问题。请检查jsonresponse@user3256145您的JSON响应似乎很好。但是,无法保证响应始终包含数据。我建议您也处理此问题。请检查JSONresponse@user3256145您的JSON响应似乎很好。但是不能保证响应总是有数据的。我建议你也处理这个问题。请检查jsonresponse@user3256145您的JSON响应似乎很好。但是,不能保证响应始终包含数据。我建议您也处理这个问题。。