0

以下代码仅显示第一条记录。谁能纠正我的错误。

使用这个尝试我建立了与 php 的连接

try{    
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://10.0.2.2/androidphp/1/index.php");
            httppost.setEntity(new UrlEncodedFormEntity(namevaluepairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            if(response.getStatusLine().getStatusCode() != 200){
                Log.d("MyApp", "Server encountered an error");
            }

try{

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF8"));
            sb= new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line = null;

            while((line = reader.readLine()) != null){
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
        }

使用这个 try 块我打印了所有值

try{
                jArray = new JSONArray(result);
                JSONObject json_data = null;
                for(int i=0; i<jArray.length(); i++){
                    json_data = jArray.getJSONObject(i);
                    outputStream.append("Id="+json_data.getString("id"));
                    outputStream.append("Name="+json_data.getString("name"));
                }
4

1 回答 1

0

您的问题并不完全清楚,但是:

可能您要输出的结构不适合给定的结构。

看看这个: http: //developer.android.com/reference/org/json/JSONArray.html您可以使用 .toString() 方法将任何 JSON-Object 转换为 String 以进行调试。

或者,您可以通过调试主动单步执行您的代码,以找出差距。

参考这个:http ://en.wikipedia.org/wiki/JSON看起来,你想阅读的结构,存储在“结果”中应该类似于:

[ {“id”:“a”,“name”:“b”},{“id”:“a”,“name”:“b”}]

实际上读取 JSON 可以像试验和错误一样务实地完成:逐步调试并检查 Eclipse 的“表达式”-例如,哪个命令导致哪个结果:)

于 2013-05-30T21:00:06.197 回答