在android上显示JSON解析器listview

时间:2016-08-30 02:22:32

标签: android json

在我的服务器中,显示此文字。

[{"name":"AAA", "age":"1"}, {"name":"BBB", "age":"2"}, {"name":"CCC", "age":"3"}]

我希望在手机上看到这个文字。

所以,我在android上使用asynctask

    String strData = "";

.
.
.
@Override
protected void onPostExecute(String result) {  //result = show server text
   super.onPostExecute(result);

   final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
   try {
       JSONArray jsonArray = new JSONArray(result);
       for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject object = jsonArray.getJSONObject(i);
            strData += object.getString("name")
                    +  object.getInt("age");

            adapter.add(strData);
       }
   } catch (JSONException e) {
     e.printStackTrace();
   }
   ListView listView = (ListView) findViewById(R.id.listView);
   listView.setAdapter(adapter);
   }

这个结果我的手机

AAA 1
----------------
AAA 1
BBB 2
----------------

但我想要节目

AAA 1
-----------
BBB 2

此。

或许,for (int i = 0; i < jsonArray.length(); i++) {这里有问题吗?

请给我建议 感谢。

3 个答案:

答案 0 :(得分:1)

这很容易,请看:

for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject object = jsonArray.getJSONObject(i);
        strData += object.getString("name")
                +  object.getInt("age");

        adapter.add(strData);
        strData = "";
   }

答案 1 :(得分:0)

for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject object = jsonArray.getJSONObject(i);
           String strData = object.getString("name")
                    +  object.getInt("age");

            adapter.add(strData);
       }

答案 2 :(得分:0)

实际上使用GSON更好。无论如何,你的问题是str date被声明为global。所以请把String strData =&#34;&#34 ;;在执行后的Forloop里面或

>  @Override protected void onPostExecute(String result) {  //result = show server text    
     super.onPostExecute(result);
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        try {
        JSONArray jsonArray = new JSONArray(result);
        for (int i = 0; i < jsonArray.length(); i++) {
            strData="";
            JSONObject object = jsonArray.getJSONObject(i);
            strData += object.getString("name")
                    +  object.getInt("age");
            adapter.add(strData);
        }   
        } catch (JSONException e) {
        e.printStackTrace();  
        } 
        ListView listView = (ListView)findViewById(R.id.listView); 
        listView.setAdapter(adapter);    }