JSON数据能解析,但不能完全显示

NASA_001 2014-09-25 07:09:13
@Override
public void onClick(View v) {
try {
// 得到Json解析成功之后数据
persons = JsonParse.getListPerson(urlPath);
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < persons.size(); i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("name", persons.get(i).getName());
map.put("address", persons.get(i).getAddress());
map.put("age", persons.get(i).getAge());
data.add(map);
}
//初始化适配器,并且绑定数据
SimpleAdapter _Adapter = new SimpleAdapter(MainActivity.this,
data, R.layout.listview_item, new String[] { "name",
"address", "age" }, new int[] { R.id.textView1,
R.id.textView2, R.id.textView3 });
mListView.setAdapter(_Adapter);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "解析失败", 2000).show();
Log.i(TAG, e.toString());
}

布局就是一个ListView,每行有三个textview

能解析json数据,但只能显示每组数据的第一部分

比如[ {"id":"01","name":"张三","国籍":“中国”}],这组数据,只能显示01,后面部分不显示
...全文
533 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
boybaozi 2014-09-26
  • 打赏
  • 举报
回复
不是应该通过jsonarray解析吗?
爱老婆的狼 2014-09-26
  • 打赏
  • 举报
回复
这种你要自己写一个adapter,就可以了
lionfresh 2014-09-26
  • 打赏
  • 举报
回复
JSONArray array = new JSONArray(new String(data));获取的是正确的json格式,或者是你预期的格式吗?
pptuzi 2014-09-26
  • 打赏
  • 举报
回复
各位前辈,能给个例子吗
rover11 2014-09-25
  • 打赏
  • 举报
回复
用 JSONArrary jarr = new JSONArrary("[ {"id":"01","name":"张三","国籍":“中国”}]"); 试试?
qq_21239779 2014-09-25
  • 打赏
  • 举报
回复
这个我也不会呀
NASA_001 2014-09-25
  • 打赏
  • 举报
回复
引用 1 楼 youngc527 的回复:
JsonParse.getListPerson 也不知道咋实现的, 可能出现的问题,比如中文处理不好,用全英文试试。
整个Json类 public class JsonParse { /** * 解析Json数据 * * @param urlPath * @return mlists * @throws Exception */ public static List<Person> getListPerson(String urlPath) throws Exception { List<Person> mlists = new ArrayList<Person>(); byte[] data = readParse(urlPath); JSONArray array = new JSONArray(new String(data)); for (int i = 0; i < array.length(); i++) { JSONObject item = array.getJSONObject(i); String name = item.getString("name"); String address = item.getString("address"); int age = item.getInt("age"); mlists.add(new Person(name, address, age)); } return mlists; } /** * 从指定的url中获取字节数组 * * @param urlPath * @return 字节数组 * @throws Exception */ public static byte[] readParse(String urlPath) throws Exception { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] data = new byte[1024]; int len = 0; URL url = new URL(urlPath); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream inStream = conn.getInputStream(); while ((len = inStream.read(data)) != -1) { outStream.write(data, 0, len); } inStream.close(); return outStream.toByteArray(); } } 还有就是JSON里面都是英文
Darcy杨 2014-09-25
  • 打赏
  • 举报
回复
JsonParse.getListPerson 也不知道咋实现的, 可能出现的问题,比如中文处理不好,用全英文试试。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧