gpt4 book ai didi

java - Simpleadapter(带有子项的 JSON)

转载 作者:行者123 更新时间:2023-12-02 11:19:17 28 4
gpt4 key购买 nike

我是 Android 开发新手,我花了几天时间尝试让我的应用程序运行,但没有成功。我正在使用 AsyncTaskSimpleAdapter,它返回数据,但是我的 JSON 有子项。它是注释的 JSON,有时注释中包含该注释的答案。但我不知道是否在 listView 中执行 listView 。我真的迷路了,我搜索了很多,但没有找到任何关于我的问题的信息。

遵循JSON:

{
COMENTARIOS: [
{
comentarios_id: "1053939",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "0",
videos_id: "0",
nome: "ludi",
email: "email@email.com.br",
ip: "186.212.2.226",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 09:34:00",
status: "3",
gostei: "67",
naogostei: "143",
resp: [ ]
},
{
comentarios_id: "1053943",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "0",
videos_id: "0",
nome: "Andre",
email: "email@email.com.br",
ip: "187.120.224.30",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 09:45:01",
status: "3",
gostei: "236",
naogostei: "114",
resp: [
{
comentarios_id: "1053945",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "1053943",
videos_id: "0",
nome: "Usuário",
email: "email@email.com.br",
ip: "187.39.180.166",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 09:51:54",
status: "3",
gostei: "143",
naogostei: "219",
resp: [ ]
},
{
comentarios_id: "1053987",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "1053943",
videos_id: "0",
nome: "Roberto, o Legítimo",
email: "email@email.com.br",
ip: "177.6.152.156",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 11:39:52",
status: "3",
gostei: "82",
naogostei: "124",
resp: [ ]
},
{
comentarios_id: "1054030",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "1053943",
videos_id: "0",
nome: "xumbinho",
email: "email@email.com.br",
ip: "186.232.178.237",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 13:19:51",
status: "3",
gostei: "69",
naogostei: "116",
resp: [ ]
}
]
},
{
comentarios_id: "1053964",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "0",
videos_id: "0",
nome: "Celso",
email: "email@email.com.br",
ip: "177.97.174.169",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 10:38:06",
status: "3",
gostei: "41",
naogostei: "116",
resp: [ ]
},
{
comentarios_id: "1054061",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "0",
videos_id: "0",
nome: "Usuário",
email: "email@email.com.br",
ip: "181.223.181.27",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 14:23:10",
status: "3",
gostei: "60",
naogostei: "15",
resp: [
{
comentarios_id: "1054173",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "1054061",
videos_id: "0",
nome: "bob",
email: "email@email.com.br",
ip: "92.59.121.38",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 17:19:32",
status: "3",
gostei: "5",
naogostei: "106",
resp: [ ]
},
{
comentarios_id: "1054485",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "1054061",
videos_id: "0",
nome: "Usuário",
email: "email@email.com.br",
ip: "187.55.120.227",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-04 10:24:56",
status: "3",
gostei: "0",
naogostei: "0",
resp: [ ]
}
]
},
{
comentarios_id: "1054304",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "0",
videos_id: "0",
nome: "Jorge",
email: "email@email.com.br",
ip: "189.74.113.127",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 21:00:03",
status: "3",
gostei: "1",
naogostei: "0",
resp: [ ]
},
{
comentarios_id: "1054382",
noticias_id: "284901",
duelos_id: "0",
respostas_id: "0",
videos_id: "0",
nome: "Pé na cova",
email: "email@email.com",
ip: "168.194.160.137",
comentario: "COMENTÁRIO",
data_cadastro: "2018-04-03 23:45:29",
status: "3",
gostei: "1",
naogostei: "0",
resp: [ ]
}
]
}

在 protected Void doInBackground(Void...arg0) 内的 AsyncTask 中,我以这种方式进行 JSON 调用:

    JSONArray comentarios = jsonObj.getJSONArray("COMENTARIOS");
for (int i = 0; i < comentarios.length(); i++) {
JSONObject c = comentarios.getJSONObject(i);
String nome = c.getString("nome");
String comentario = c.getString("comentario");

HashMap<String, String> comentariotxt = new HashMap<>();

comentariotxt.put("nome", nome);
comentariotxt.put("comentario", comentario);

JSONArray resp = c.getJSONArray("resp");
if(resp.length() > 0){
for (int j = 0; j < resp.length(); j++){
JSONObject d = resp.getJSONObject(j);
String respostaNome = d.getString("nome");
String respostaComentario = d.getString("comentario");
Log.d("respostaNome",respostaNome);

HashMap<String, String> respostatxt = new HashMap<>();
respostatxt.put("respostaNome", respostaNome);
respostatxt.put("respostaComentario", respostaComentario);
comentarioList.add(respostatxt);
}
}
comentarioList.add(comentariotxt);
}

但这里已经把一切搞乱了。嗯,我需要两件事。让他们按顺序提出评论和答案,气球响应的外观将与评论气球不同。目前我只做评论的 ListView ,但我也不确定是否需要另一个 ListView 来获取答案。我的意思是……我很失落!有人帮助我吗?

非常感谢你们!

最佳答案

我尝试使用单个对象修改您的json

请检查以下代码来解析此json:

  try {
JSONObject jsonObject1 = new JSONObject("{\n" +
"\t\"COMENTARIOS\": [{\n" +
"\t\t\"comentarios_id\": \"1053939\",\n" +
"\t\t\"noticias_id\": \"284901\",\n" +
"\t\t\"duelos_id\": \"0\",\n" +
"\t\t\"respostas_id\": \"0\",\n" +
"\t\t\"videos_id\": \"0\",\n" +
"\t\t\"nome\": \"ludi\",\n" +
"\t\t\"email\": \"email@email.com.br\",\n" +
"\t\t\"ip\": \"186.212.2.226\",\n" +
"\t\t\"comentario\": \"COMENTÁRIO\",\n" +
"\t\t\"data_cadastro\": \"2018-04-03 09:34:00\",\n" +
"\t\t\"status\": \"3\",\n" +
"\t\t\"gostei\": \"67\",\n" +
"\t\t\"naogostei\": \"143\",\n" +
"\t\t\"resp\": []\n" +
"\t}]\n" +
"}");
JSONArray jsonArray = jsonObject1.getJSONArray("COMENTARIOS");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String comentarios_id = jsonObject.get("noticias_id").toString();
System.out.println("----comentarios_id---" + comentarios_id);
}

} catch (JSONException e) {
e.printStackTrace();
System.out.println("----comentarios_id---exc--" + e);
}

注意: 在我传递静态 json 的 json 对象中,您需要传递存储所有 json 的您自己的字符串。

关于java - Simpleadapter(带有子项的 JSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50047810/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com