如何在列表视图中显示 json 数据?
Posted
技术标签:
【中文标题】如何在列表视图中显示 json 数据?【英文标题】:How to display json data in a listview? 【发布时间】:2020-01-06 02:53:44 【问题描述】:我想查看列表视图中的 json 数据... 我试图创建一个新的对象类并收集数据以列出,但我认为我错了... 我尝试使用 TextView 来验证数据的正确传递,它似乎可以正常工作,但我需要在 listView 上显示它们...您有什么想法可以解决我的问题吗?
public class LoggedActivity extends AppCompatActivity
private RequestQueue mQueue;
private ListView lstView;
private TextView mTextViewResult;
Button buttonParse;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_logged);
lstView = findViewById(R.id.lstView);
mTextViewResult = findViewById(R.id.text_view_result);
buttonParse = findViewById(R.id.button_parse);
Bundle extras = getIntent().getExtras();
final String id_utente = extras.getString("id");
mQueue = Volley.newRequestQueue(this);
buttonParse.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
jsonParse(id_utente);
);
private void jsonParse(String id_utente)
class Prodotti
private String id;
private String idUtente;
private String nomeProdotto;
public String getId()
return id;
public void setId(String id)
this.id = id;
public String getIdUtente()
return idUtente;
public void setIdUtente(String idUtente)
this.idUtente = idUtente;
public String getNomeProdotto()
return nomeProdotto;
public void setNomeProdotto(String nomeProdotto)
this.nomeProdotto = nomeProdotto;
final List<Prodotti> listaProdotti = new ArrayList<Prodotti>();
String url = "http://192.168.1.5/progettophp/WebServices/webSrv.php?type=recuperaProdotti&idutente=" + id_utente;
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>()
@Override
public void onResponse(JSONObject response)
try
JSONArray jsonArray = response.getJSONArray("Dati");
for (int i = 0; i < jsonArray.length(); i++)
JSONObject dato = jsonArray.getJSONObject(i);
Prodotti prdt = new Prodotti();
prdt.setId(dato.getString("id"));
prdt.setIdUtente(dato.getString("id_utente"));
prdt.setNomeProdotto(dato.getString("nome_prodotto"));
listaProdotti.add(prdt);
//mTextViewResult.append(id + ", " + id_utente + ", " + nome_prodotto + "\n\n");
catch (JSONException e)
e.printStackTrace();
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
);
mQueue.add(request);
【问题讨论】:
查看一些关于Adapter + RecyclerView的教程。 ListView 已过时。 JSON Parsing to ListView android的可能重复 【参考方案1】:-
使用http://www.jsonschema2pojo.org/从json文件创建实体模型
使用Gson库填充模型https://github.com/google/gson
现在您有了一个漂亮的模型,其中包含您可以获取列表、添加排序和其他任何内容的数据
要显示此列表,请使用 recyclerView 或 listView 或 ...。
回收站查看https://developer.android.com/guide/topics/ui/layout/recyclerview
列表视图https://developer.android.com/reference/android/widget/ListView
【讨论】:
以上是关于如何在列表视图中显示 json 数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android JAVA 的列表视图中显示部分但不是全部 JSON 数据