为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JSON 字符串解析到 ListView 中?

如何将 JSON 字符串解析到 ListView 中?

慕田峪7331174 2024-01-28 16:58:58
所以我开始编写 Java Android 并尝试解析JSON我创建的字符串。所以,我想将其解析为 aListView并且我需要人们帮助我。我的实验 JSON 文件:[    {       "HoTen":" Nguy\u1ec5n V\u0103n A",      "NamSinh":1999,      "DiaChi":"H\u00e0 N\u1ed9i"   },   {+},   {+},   {+},   {+},   {+},   {+},   {+},   {+}]我的代码但它不起作用: protected void onPostExecute(String s) {     //Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();     try {         mangLV = new ArrayList<String>();         JSONArray jsonArray = new JSONArray(s);         JSONObject jsonObject = new JSONObject(s);         for (int i =0;i<=jsonObject.length();i++)         {             JSONObject  object = jsonArray.getJSONObject(i);             //HoTen.getString("HoTen");             String HoTen = object.getString("HoTen");             int NamSinh = object.getInt("NamSinh");             String DiaChi = object.getString("DiaChi");         }         ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_list_item_1,mangLV);         lvSinhVien.setAdapter(adapter);     } catch (JSONException e) {         e.printStackTrace();     } }
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

希望对你有帮助


protected void onPostExecute(String s) {


    //Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();

    try {

        ArrayList<String> mangLV = new ArrayList<String>();


        JSONArray jsonArray = new JSONArray(s);

        for (int i = 0; i < jsonArray.length(); i++) {

            JSONObject object = jsonArray.getJSONObject(i);

            //HoTen.getString("HoTen");

            String HoTen = object.getString("HoTen");

            int NamSinh = object.getInt("NamSinh");

            String DiaChi = object.getString("DiaChi");

            String result = String.format("HoTen: %s, NamSinh: %s, DiaChi: %s",

                    HoTen, NamSinh, DiaChi);

            mangLV.add(result);

        }

        ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, mangLV);

        lvSinhVien.setAdapter(adapter);

    } catch (JSONException e) {

        e.printStackTrace();

    }

}


查看完整回答
反对 回复 2024-01-28
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

看来你没有使用你的JSONObject jsonObject = new JSONObject(s);. 你for应该是for(int i = 0; i<=jsonArray.length();i++),从而使你的 jsonObject 过时。另外,您向适配器传递了一个空列表!你永远不会在你的 mangLV 列表中添加任何东西。


试试这个代码:


    protected void onPostExecute(String s) {

        //Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();

        try {

            mangLV = new ArrayList<String>();


            JSONArray jsonArray = new JSONArray(s);

            for(int i = 0; i < jsonArray.length(); i++)

            {

                JSONObject object = jsonArray.getJSONObject(i);

                String HoTen = object.getString("HoTen");

                int NamSinh = object.getInt("NamSinh");

                String DiaChi = object.getString("DiaChi");

                String result = "HoTen " + HoTen + " | NamSinh " + NamSinh + " | DiaChi " + DiaChi;

                mangLV.add(result);  //After fetching the values, add the objects to your list    

            }

            ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_list_item_1,mangLV);

            lvSinhVien.setAdapter(adapter);

        } catch (JSONException e) {

            e.printStackTrace();

        }

    }

这应该添加到您的 ListView 对象中,如下所示:


HoTen Nguy\u1ec5n V\u0103n A | NamSinh 1999 | DiaChi H\u00e0 N\u1ed9i


查看完整回答
反对 回复 2024-01-28
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信