用Gson包进行解析本地的json文件
来源:互联网 发布:北京致远软件 编辑:程序博客网 时间:2024/06/05 02:13
/****************************************/------------------------> MainActivity 类
package com.ygsonjxjson;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.ListView;
import com.google.gson.Gson;
import com.ygsonjxjson.adapter.MyAdapter;
import com.ygsonjxjson.bean.CarData;
import com.ygsonjxjson.utils.CarUtils;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private ArrayList<CarData> carlist;
private CarData fromJson;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cardatas();
// 寻找控件id
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new MyAdapter(this, fromJson));
}
private void cardatas() {
try {
File externalStorageDirectory = Environment
.getExternalStorageDirectory();
FileInputStream inputStream = new FileInputStream(
externalStorageDirectory + "/cardata.json");
// 调用
String json = CarUtils.carToStr(inputStream);
Gson gson = new Gson();
fromJson = gson.fromJson(json, CarData.class);
for (int i = 0; i < fromJson.data.items.size(); i++) {
Log.i(TAG, fromJson.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
/********************************/----------------------> MyAdapter 类
package com.ygsonjxjson.adapter;
import java.util.ArrayList;
import com.ygsonjxjson.MainActivity;
import com.ygsonjxjson.R;
import com.ygsonjxjson.bean.CarData;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
Context context;
public MyAdapter(Context context, CarData fromJson) {
super();
this.context = context;
this.fromJson = fromJson;
}
CarData fromJson;
@Override
public int getCount() {
return fromJson.data.items.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(context, R.layout.item_a, null);
// 寻找控件id
TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
TextView tv_jiage = (TextView) view.findViewById(R.id.tv_jiage);
// 设置
tv_name.setText(fromJson.data.items.get(position).name);
tv_jiage.setText(fromJson.data.items.get(position).price);
return view;
}
}
/*****************************************/-----------------------------> CarUtils 帮助类
package com.ygsonjxjson.utils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.util.Log;
public class CarUtils {
private static final String TAG = "CarUtils";
public static String carToStr(InputStream inputStream) throws IOException {
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
// 数组长度
byte[] buffer = new byte[1024];
// 初始长度
int len = 0;
// 循环
while ((len = inputStream.read(buffer)) != -1) {
arrayOutputStream.write(buffer, 0, len);
// return arrayOutputStream.toString();
}
Log.i(TAG, arrayOutputStream.toString());
return arrayOutputStream.toString();
}
}
/******************************************/--------------------------> CarData Bean类
package com.ygsonjxjson.bean;
import java.util.ArrayList;
public class CarData {// JSON 中 包含的对象
public String info;
public String status;
public MyData data;
public class MyData {// DATA中包含的对象
public String count;
public String type;
public ArrayList<Items> items;
}
public class Items {// ITEMS集合中包含的对象
public String brand;
public String name;
public String price;
}
}
- 用Gson包进行解析本地的json文件
- 用Gson包进行解析本地的json文件
- Gson解析json文件
- Gson解析json文件
- 使用Gson进行Json解析
- 谷歌推出的json解析jar包Gson
- 用Gson包进行java对象和Json格式字符串的相互转换
- 用Gson解析JSON 的方法
- 用Gson解析复杂的Json字符串
- Android中通过Gson进行json解析
- Kotlin配合Gson进行json数据解析
- JSON数据解析及gson.jar包
- 解析本地json文件
- 解析本地json文件
- Json解析本地json文件
- Gson 解析json的使用
- Gson解析json的数据
- Gson解析复杂的json
- camshift
- Linux应用服务器搭建手册——JDK安装与配置
- Fresco-Facebook的图片加载框架的使用
- 利用ActivityLifecycleCallBack监控app前后台状态切换,实现手势密码
- window.location.hash属性介绍
- 用Gson包进行解析本地的json文件
- LeetCode 231. Power of Two(2的N次幂)
- 轮廓、边缘、边界的相关函数
- 笔记--PageHelper分页
- Ajax应用详解
- iOS 如何设置启动引导图
- 循环队列学习
- tftp,ftp服务搭建
- 单例的获取and序列化和反序列化破坏单例的原因及解决方法