Android解析JSON数据并添加到LIstView中。出现了一些问题。

测试0001 2016-02-22 10:08:53
JSON解析数据并将数据添加到ListView中。

请问这样是什么原因?


path地址确认无误= =
这是用网页打开patg地址
{"code":200,"message":"调用成功","data":{"mem_message_records":[{"message_disease_typeid":"1","message_disease_type":"心血管系统"},{"message_disease_typeid":"2","message_disease_type":"外围血管疾病"},{"message_disease_typeid":"3","message_disease_type":"脑血管疾病"},{"message_disease_typeid":"4","message_disease_type":"肺部疾病"},{"message_disease_typeid":"5","message_disease_type":"代谢疾病"},{"message_disease_typeid":"6","message_disease_type":"周围神经疾病"},{"message_disease_typeid":"7","message_disease_type":"其他疾病"}],"mem_message_recordss":[[{"message_diseaseid":"1","message_disease":"冠状动脉疾病"},{"message_diseaseid":"2","message_disease":"心绞痛"},{"message_diseaseid":"3","message_disease":"心肌梗死"},{"message_diseaseid":"4","message_disease":"冠状动脉血运重建"},{"message_diseaseid":"5","message_disease":"充血性心力衰竭"}],[{"message_diseaseid":"6","message_disease":"闭塞性周围动脉粥样硬化"},{"message_diseaseid":"7","message_disease":"血栓行静脉炎"}],[{"message_diseaseid":"8","message_disease":"脑血栓"},{"message_diseaseid":"9","message_disease":"短暂性脑供血不足"},{"message_diseaseid":"10","message_disease":"脑出血"}],[{"message_diseaseid":"11","message_disease":"慢性支气管炎"},{"message_diseaseid":"12","message_disease":"慢性阻塞性肺病"},{"message_diseaseid":"13","message_disease":"支气管哮喘"},{"message_diseaseid":"14","message_disease":"间质性肺病"},{"message_diseaseid":"15","message_disease":"囊性肺纤维化"}],[{"message_diseaseid":"16","message_disease":"1型糖尿病"},{"message_diseaseid":"17","message_disease":"2型糖尿病"},{"message_diseaseid":"18","message_disease":"糖尿病肾病"}],[{"message_diseaseid":"19","message_disease":"糖尿病性周围精神病"},{"message_diseaseid":"20","message_disease":"自主神经性病变"}],[{"message_diseaseid":"21","message_disease":"高血压"},{"message_diseaseid":"22","message_disease":"视网膜病变"},{"message_diseaseid":"23","message_disease":"恶性肿瘤"},{"message_diseaseid":"24","message_disease":"脑卒中"},{"message_diseaseid":"25","message_disease":"重性精神疾病"},{"message_diseaseid":"26","message_disease":"结核病"},{"message_diseaseid":"27","message_disease":"肝炎"},{"message_diseaseid":"28","message_disease":"先天畸形"},{"message_diseaseid":"29","message_disease":"其它"}]]}}

这是我自己本地的打印的解析数据的返回


JiBingbean{code='200', message='调用成功', data=JiBinglist{mem_uid='null', mem_message_records=[JiBingdata{message_diseaseid='null', message_disease_typeid='1', message_disease='null', message_disease_type='心血管系统'}, JiBingdata{message_diseaseid='null', message_disease_typeid='2', message_disease='null', message_disease_type='外围血管疾病'}, JiBingdata{message_diseaseid='null', message_disease_typeid='3', message_disease='null', message_disease_type='脑血管疾病'}, JiBingdata{message_diseaseid='null', message_disease_typeid='4', message_disease='null', message_disease_type='肺部疾病'}, JiBingdata{message_diseaseid='null', message_disease_typeid='5', message_disease='null', message_disease_type='代谢疾病'}, JiBingdata{message_diseaseid='null', message_disease_typeid='6', message_disease='null', message_disease_type='周围神经疾病'}, JiBingdata{message_diseaseid='null', message_disease_typeid='7', message_disease='null', message_disease_type='其他疾病'}]}}


请一下哪边出了问题?我还是我实体类写错了
...全文
345 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
中宏666 2018-05-28
  • 打赏
  • 举报
回复
{"code":1,"data":[{"pid":"35","point_id":"41193","status":"0","no_img":"","pano_img":"","point_detail":{"id":"41193","code":"15029","houses_id":"166","area_id":"0","ban":"4\u680b","unit":"","floor":"1","addr":"1","type_id":"1","order_id":"0","customer_id":",8","images":"","price":"0.00","remarks":"","creator":"0","create_time":null,"update_user":"0","update_time":"0000-00-00 00:00:00","point_status":"3","show_method":"","texture":"","used_num":"94","ad_num":"1","lock_num":"0","ad_use_num":"1","is_del":"0","houses_type":"3","floor_num":"30","houses_name":"\u4e91\u51ef\u7199\u56ed","area_name":"","destroy":"","destroy_img":"","self_lock":"0","houses_area_name":null,"province":"\u8d35\u5dde\u7701","city":"\u8d35\u9633\u5e02","area":"\u82b1\u6eaa\u533a","put_trade":"","grade":"2","is_check_out":"0","area_grade":null,"size":"45cm*71cm"}},{"pid":"35","point_id":"41194","status":"0","no_img":"","pano_img":"","point_detail":{"id":"41194","code":"15030","houses_id":"166","area_id":"0","ban":"4\u680b","unit":"","floor":"1","addr":"2","type_id":"1","order_id":"0","customer_id":",8","images":"","price":"0.00","remarks":"","creator":"0","create_time":null,"update_user":"0","update_time":"0000-00-00 00:00:00","point_status":"3","show_method":"","texture":"","used_num":"101","ad_num":"1","lock_num":"0","ad_use_num":"1","is_del":"0","houses_type":"3","floor_num":"30","houses_name":"\u4e91\u51ef\u7199\u56ed","area_name":"","destroy":"","destroy_img":"","self_lock":"0","houses_area_name":null,"province":"\u8d35\u5dde\u7701","city":"\u8d35\u9633\u5e02","area":"\u82b1\u6eaa\u533a","put_trade":"","grade":"2","is_check_out":"0","area_grade":null,"size":"45cm*71cm"}}],"page":1} 谁能告诉我 这个数据如何放在listview中Android的 要放status和id还要其他的 但是这个两个完全不是在一个层的
qq_37317278 2017-01-12
  • 打赏
  • 举报
回复
Android Studio 插件 Gsonformat一键自动解析json数据
测试0001 2016-02-23
  • 打赏
  • 举报
回复
引用 4 楼 qq_15311755 的回复:
你的jiBingbean应该是解析 data=JiBinglist 里面的数据吧,你好像直接解析整个json数据了
我构建了实体类,将他们一层一层嵌套一起来的。 我成功解析过出一个,但是同时解析两个的时候就出现问题了 我这边新开了一个帖子。 http://ask.csdn.net/questions/238470 我想同样的方法将两个数组拼起来的。结果不行。
测试0001 2016-02-23
  • 打赏
  • 举报
回复
引用 6 楼 jklwan 的回复:
你只解析了这个mem_message_records,没解析这个mem_message_recordss,你用json格式化一下就看出问题了
对的。我也是我后来才发现了这个问题。 我这边新开了一个帖子。 http://ask.csdn.net/questions/238470 我想将两个数组拼接起来的。但是程序报错 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 520 path $.data.mem_message_recordss[0] 新的帖子里我附了程序代码。
jklwan 2016-02-23
  • 打赏
  • 举报
回复
你只解析了这个mem_message_records,没解析这个mem_message_recordss,你用json格式化一下就看出问题了
测试0001 2016-02-23
  • 打赏
  • 举报
回复
引用 3 楼 a631855639 的回复:
不知道你说的问题是什么,是出现了什么问题?
就是解析这个JSON数组的时候,我总是解析出一半的数据。另外一半的数据总是显示NULL值。 问题我已经找到了。就是这个接口地址里面是两个数组。而我只解析了 一个。这是后来我问了一个写服务器端的朋友帮我查看出来的。 谢谢。 现在的问题是,我将服务器给的参数构建了一个实体类来接收服务器给的值。 但是给的接口文档上确实两个数组。 现在已经解析出了疾病类型数组,用了相同的方法构建实体类想解析出疾病名称数组。但是程序运行报错,错误是, Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 520 path $.data.mem_message_recordss[0] 这个错误是说我按照对象解析的,其实它是一个数组。 下面是我构建的实体类。 这是最里层的两个, //疾病名称 public class JiBingdataname { private String message_diseaseid; private String message_disease; } //疾病类型 public class JiBingdata { private String message_disease_type; private String message_disease_typeid; } //外一层 public class JiBinglist { private List<JiBingdata> mem_message_records; private List<JiBingdataname> mem_message_recordss; } //最外层 public class JiBingbean { private String code; private String message; private JiBinglist data; } 这边是我的解析代码 //解析JSON数据 private class Mythread extends Thread { @Override public void run() { System.out.println("....启动线程"); //网络请求路径 String path = HttpInfo.PATH + HttpInfo.GET_JIBINGLIST + HttpInfo.ID; String jsonString = HttpUtils.getJsonContent(path); Gson gson = new Gson(); System.out.println("------------------------" + path); //解析json数据 jiBingbean = gson.fromJson(jsonString, JiBingbean.class); System.out.println("....启动线程" + jiBingbean); //解析成功后发送msg给UI主线程 Message msg = new Message(); msg.what = 101; myHandler.sendMessage(msg); } } 这边是我的接口文档信息。 { "code":200, "message":"调用成功", "data":{ "mem_message_records":[ { "message_disease_typeid":"1", "message_disease_type":"心血管系统" }, { "message_disease_typeid":"2", "message_disease_type":"外围血管疾病" }, { "message_disease_typeid":"3", "message_disease_type":"脑血管疾病" }, { "message_disease_typeid":"4", "message_disease_type":"肺部疾病" }, { "message_disease_typeid":"5", "message_disease_type":"代谢疾病" }, { "message_disease_typeid":"6", "message_disease_type":"周围神经疾病" }, { "message_disease_typeid":"7", "message_disease_type":"其他疾病" } ], "mem_message_recordss":[ [ { "message_diseaseid":"1", "message_disease":"冠状动脉疾病" }, { "message_diseaseid":"2", "message_disease":"心绞痛" }, { "message_diseaseid":"3", "message_disease":"心肌梗死" }, { "message_diseaseid":"4", "message_disease":"冠状动脉血运重建" }, { "message_diseaseid":"5", "message_disease":"充血性心力衰竭" } ], [ { "message_diseaseid":"6", "message_disease":"闭塞性周围动脉粥样硬化" }, { "message_diseaseid":"7", "message_disease":"血栓行静脉炎" } ], [ { "message_diseaseid":"8", "message_disease":"脑血栓" }, { "message_diseaseid":"9", "message_disease":"短暂性脑供血不足" }, { "message_diseaseid":"10", "message_disease":"脑出血" } ], [ { "message_diseaseid":"11", "message_disease":"慢性支气管炎" }, { "message_diseaseid":"12", "message_disease":"慢性阻塞性肺病" }, { "message_diseaseid":"13", "message_disease":"支气管哮喘" }, { "message_diseaseid":"14", "message_disease":"间质性肺病" }, { "message_diseaseid":"15", "message_disease":"囊性肺纤维化" } ], [ { "message_diseaseid":"16", "message_disease":"1型糖尿病" }, { "message_diseaseid":"17", "message_disease":"2型糖尿病" }, { "message_diseaseid":"18", "message_disease":"糖尿病肾病" } ], [ { "message_diseaseid":"19", "message_disease":"糖尿病性周围精神病" }, { "message_diseaseid":"20", "message_disease":"自主神经性病变" } ], [ { "message_diseaseid":"21", "message_disease":"高血压" }, { "message_diseaseid":"22", "message_disease":"视网膜病变" }, { "message_diseaseid":"23", "message_disease":"恶性肿瘤" }, { "message_diseaseid":"24", "message_disease":"脑卒中" }, { "message_diseaseid":"25", "message_disease":"重性精神疾病" }, { "message_diseaseid":"26", "message_disease":"结核病" }, { "message_diseaseid":"27", "message_disease":"肝炎" }, { "message_diseaseid":"28", "message_disease":"先天畸形" }, { "message_diseaseid":"29", "message_disease":"其它" } ] ] } }
hadis_fei 2016-02-22
  • 打赏
  • 举报
回复
你的jiBingbean应该是解析 data=JiBinglist 里面的数据吧,你好像直接解析整个json数据了
画虎烂 2016-02-22
  • 打赏
  • 举报
回复
不知道你说的问题是什么,是出现了什么问题?
测试0001 2016-02-22
  • 打赏
  • 举报
回复
源码附上。求下大神。
测试0001 2016-02-22
  • 打赏
  • 举报
回复
package sy; import android.app.Activity; import android.app.DatePickerDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.DatePicker; import android.widget.ImageView; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.google.gson.Gson; import com.xiaheng.bswk.HttpInfo; import com.xiaheng.bswk.HttpUtils; import com.xiaheng.bswk.R; import com.xiaheng.gsonBean.JiBingbean; import com.xiaheng.gsonBean.JiBingdata; import org.w3c.dom.Text; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; /** * Created by Administrator on 2016/2/18. */ public class Getjzsdisease extends Activity { private TextView tv; private ListView jzsdisease_list; private LayoutInflater inflater; private TextView baocun; private static int currentPosition = -1; private JiBingbean jiBingbean; private Handler myHandler = null; private ArrayList<JiBingdata> jibingdata = new ArrayList<>(); private JbAdapter adapter; private String date_time; private boolean dui1 = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.get_jzsdisease_list); myHandler = new Handler() { @Override public void handleMessage(Message msg) { if (101 == msg.what) { for (int i = 0; i < jiBingbean.getData().getMem_message_records().size(); i++) { JiBingdata data1 = new JiBingdata(); //获得数据 String message_disease = jiBingbean.getData().getMem_message_records().get(i).getMessage_disease(); System.out.println("message_disease" + message_disease); String message_disease_type = jiBingbean.getData().getMem_message_records().get(i).getMessage_disease_type(); data1.setMessage_disease(message_disease); data1.setMessage_disease_type(message_disease_type); jibingdata.add(data1); } } adapter = new JbAdapter(); jzsdisease_list.setAdapter(adapter); adapter.notifyDataSetChanged(); } }; new Thread(new Mythread()).start(); setview(); } private void setview() { //保存按钮 baocun = (TextView) findViewById(R.id.textView71); baocun.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); //listView监听 jzsdisease_list = (ListView) findViewById(R.id.mylist_disease); jzsdisease_list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { currentPosition = position; adapter.notifyDataSetChanged(); } }); } //解析JSON数据 private class Mythread extends Thread { @Override public void run() { System.out.println("....启动线程"); //网络请求路径 String path = HttpInfo.PATH + HttpInfo.GET_JIBINGLIST + HttpInfo.ID; String jsonString = HttpUtils.getJsonContent(path); Gson gson = new Gson(); System.out.println("------------------------"+path); //解析json数据 jiBingbean = gson.fromJson(jsonString, JiBingbean.class); System.out.println("....启动线程" + jiBingbean); //解析成功后发送msg给UI主线程 Message msg = new Message(); msg.what = 101; myHandler.sendMessage(msg); } } //自定义adapter class JbAdapter extends BaseAdapter { public JbAdapter() { super(); inflater = LayoutInflater.from(Getjzsdisease.this); } @Override public int getCount() { return jibingdata.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder view = null; TextView date=null; if (convertView == null) { view = new ViewHolder(); convertView = inflater.inflate(R.layout.get_jzsdisease, parent, false); view.jibing_type = (TextView) convertView .findViewById(R.id.xinxueguanxitong_text); view.jibing_name = (TextView) convertView .findViewById(R.id.jzs_jibingmingcheng); view.tang= (ImageView) convertView.findViewById(R.id.tang); view.relativeLayout= (RelativeLayout) convertView.findViewById(R.id.addjiazushi_date1); convertView.setTag(view); } else { view = (ViewHolder) convertView.getTag(); } //日期事件 final ViewHolder finalView = view; final ViewHolder finalView1 = view; //点击图片是是否变色 view.tang.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!dui1) { finalView.tang.setImageResource(R.drawable.dui_hover); dui1 = true; } else { finalView1.tang.setImageResource(R.drawable.dui); dui1 = false; } } }); //日期点击事件 view.relativeLayout.setTag(position); view.relativeLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final TextView textView = (TextView) v.findViewById(R.id.jzs_adddate);//展示日期的textView final Calendar calendar = Calendar.getInstance(); DatePickerDialog dialog = new DatePickerDialog(Getjzsdisease.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { calendar.set(year, monthOfYear, dayOfMonth); System.out.println("-----------------date---------------" + DateFormat.format("yyyy-MM-dd", calendar)); textView.setText(DateFormat.format("yyyy-MM-dd", calendar)); date_time = textView.getText().toString(); System.out.println("------------------date--------------" + date_time); } }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); dialog.show(); } }); view.jibing_type.setText(jibingdata.get(position).getMessage_disease_type()); view.jibing_name.setText(jibingdata.get(position).getMessage_disease()); return convertView; } private class ViewHolder { private TextView jibing_type; private TextView jibing_name; private ImageView tang; private RelativeLayout relativeLayout; } } }

80,360

社区成员

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

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