从 Django 到 Android 的 JSON 数组
Posted
技术标签:
【中文标题】从 Django 到 Android 的 JSON 数组【英文标题】:JSON array from Django to Android 【发布时间】:2012-08-14 10:19:42 【问题描述】:我在尝试解析从 Django 发送到 android 的 json 数组字符串时遇到问题。这是json字符串的格式。
[
"pk": 1,
"model": "brete.brete",
"fields":
"contenido": "93iw09if",
"fecha": "2011-05-07 03:06:40",
"codigo_confirmacion": "",
"correo": "oij8@gmail.com",
"activado": false,
"titulo": "234"
,
"pk": 2,
"model": "brete.brete",
"fields":
"contenido": "asoidjfdiso",
"fecha": "2011-05-07 03:08:09",
"codigo_confirmacion": "",
"correo": "oijoiji@oijoi.com",
"activado": false,
"titulo": "ijj"
]
etc
这就是我获取数据的方式:
//parse json data
try
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++)
JSONObject json_data = jArray.getJSONObject(i);
Brete resultRow = new Brete();
resultRow.contenido = json_data.getString("contenido");
resultRow.fecha = json_data.getString("fecha");
resultRow.correo = json_data.getString("correo");
arrayOfWebData.add(resultRow);
catch(JSONException e)
Log.e("log_tag", "Error parsing data "+e.toString());
我正在尝试获取'contenido'
、'fecha'
和'correo'
的数据,但我没有显示任何行。这不是整个代码,也许问题出在其他地方,但我有一种预感,这可能是没有正确解析嵌套 json 与 json_data.getString() 的问题。任何帮助表示赞赏。
【问题讨论】:
【参考方案1】:在您获取字段之前,您实际上必须触及“字段”对象:
//parse json data
try
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++)
JSONObject buf = jArray.getJSONObject(i);
JSONObject json_data = buf.getJSONObject("fields");
Brete resultRow = new Brete();
resultRow.contenido = json_data.getString("contenido");
resultRow.fecha = json_data.getString("fecha");
resultRow.correo = json_data.getString("correo");
arrayOfWebData.add(resultRow);
catch(JSONException e)
Log.e("log_tag", "Error parsing data "+e.toString());
【讨论】:
以上是关于从 Django 到 Android 的 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章
Android 如何 POST 到 Django Rest Framework Json 或 API?
Django:基于 DRF 令牌的身份验证 VS JSON Web 令牌