java - 如何从 json 数组中检索数据并显示在 textview 中?

标签 java android json

我一直在使用来自 this link 的示例中的编码: 代码如下所示:

public class food extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String result = null;
        InputStream is = null;
        StringBuilder sb=null;
        String result=null;
            TextView fdi = (TextView)findViewById(R.id.textView1);
            TextView fdn = (TextView)findViewById(R.id.textView2);

        //http post
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://127.0.0.1/food.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
        }catch(Exception e){
            Log.e("log_tag", "Error in http connection"+e.toString());
        }

        //convert response to string
        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line="0";

            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());
        }

        //paring data
        int fd_id;
        String fd_name;
        try{
        jArray = new JSONArray(result);
        JSONObject json_data=null;

        for(int i=0;i<jArray.length();i++){
                json_data = jArray.getJSONObject(i);
                fd_id=json_data.getInt("FOOD_ID");
                fd_name=json_data.getString("FOOD_NAME");
        }

        }catch(JSONException e1){
            Toast.makeText(getBaseContext(), "No Food Found", Toast.LENGTH_LONG).show();
        }catch (ParseException e1){
            e1.printStackTrace();
        }
    }
}

现在我的问题是如何将此数据传递给 ListView ,例如对于每次迭代,必须将列表项与检索到的数据一起添加。

请帮帮我

提前致谢

最佳答案

您已经在下面的代码中获取了字符串,为什么不使用它。

         for(int i=0;i<jArray.length();i++){
            json_data = jArray.getJSONObject(i);
            fd_id=json_data.getInt("FOOD_ID");
            fd_name=json_data.getString("FOOD_NAME");
          }

//fdname 和 fd_id 你做对了,

如果您的代码无法正常工作,请添加您遇到的问题。

根据您来自服务器的响应/结果,下面的代码对我有用,并以字符串形式给出输出,

                try {    
          String response ="[{\"FOOD_ID\":\"1\",\"FOOD_NAME\":\"Rice\"},{\"FOOD_ID\":\"2\",\"FOOD_NAME\":\"Daal\"}] ";
           JSONArray array;

            array = new JSONArray(response);

           for (int i = 0; i < array.length(); i++) {
             JSONObject obj = array.getJSONObject(0);
             String id_fd = obj.getString("FOOD_ID");
             String name_fd = obj.getString("FOOD_NAME");
             Log.d("JSONArray", id_fd+"   " +name_fd);
        }} catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

请根据需要使用。

关于java - 如何从 json 数组中检索数据并显示在 textview 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8908496/

相关文章:

java - Android:当我在另一个 Activity 中时,如何保持倒数计时器运行并在超时时显示一条消息?

android - 在 AsyncTask 的帮助下从 List 数组向 Google Maps API v2 添加多个标记

json - Dart + JSON + Neo4j:某处有教程吗?

java - 如何在 Java 中使用数组和对象读取 JSON 文件

java - 在Java中访问引用类型数组的元素

java - 有没有更好的方法来为 java 编写这段代码?还是让它更干净?

java - 将多个 Android Activity 的数据保存到一个 Firebase 数据库

java - 当Java流正在工作的列表被并发修改时,它是如何工作的?

java - 如何在使用 Java JSON Patch 修补时禁止更新字段

Android - 更新多人游戏中所有客户端的用户界面?