android 开发如何将数据封装成对象以及从对象中获取出来

来源:互联网 发布:淘宝 旧版本 ipad 编辑:程序博客网 时间:2024/05/16 01:50

当我们从接口中获取到我们所需要的数据(我们以JSON数据为例)时,如何将数据封装成对象以及从对象中获取出来呢?

接下来我们看下这个流程是怎么做的:

首先,我们将获取的JSON数据用对象来存储:

try {if (null != json) {JSONObject newsObject = new JSONObject(json);JSONObject jsonObject = newsObject.getJSONObject("data");JSONArray blogsJson = jsonObject.getJSONArray("blogs");for (int i = 0; i < blogsJson.length(); i++) {JSONObject newsInfoLeftObject = blogsJson.getJSONObject(i);DuitangInfo newsInfo1 = new DuitangInfo();newsInfo1.setAlbid(newsInfoLeftObject.isNull("albid") ? "" : newsInfoLeftObject.getString("albid"));newsInfo1.setIsrc(newsInfoLeftObject.isNull("isrc") ? "" : newsInfoLeftObject.getString("isrc"));newsInfo1.setMsg(newsInfoLeftObject.isNull("msg") ? "" : newsInfoLeftObject.getString("msg"));newsInfo1.setHeight(newsInfoLeftObject.getInt("iht"));duitangs.add(newsInfo1);}}} catch (JSONException e) {e.printStackTrace();}

其次,我们需要在自定义的adapter中将数据获取出来:

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;DuitangInfo duitangInfo = mInfos.get(position);if (convertView == null) {LayoutInflater layoutInflator = LayoutInflater.from(parent.getContext());convertView = layoutInflator.inflate(R.layout.infos_list, null);holder = new ViewHolder();holder.imageView = (ScaleImageView) convertView.findViewById(R.id.news_pic);holder.contentView = (TextView) convertView.findViewById(R.id.news_title);convertView.setTag(holder);}holder = (ViewHolder) convertView.getTag();holder.imageView.setImageWidth(duitangInfo.getWidth());holder.imageView.setImageHeight(duitangInfo.getHeight());holder.contentView.setText(duitangInfo.getMsg());mImageFetcher.loadImage(duitangInfo.getIsrc(), holder.imageView);return convertView;}

总结:我之前开发的时候直接用ArrayList<Map<String,Object>>以键值对的方式来保存和获取数据,但我们开发的时候需要总结好的编码风格,并运用到我们的开发中来。

0 0
原创粉丝点击