Android中对json数据的解析

     如今json数据在网络开发中作为传输数据的使用已经超过了xml格式的应用。json数据的格式比较简单,易于解析,另外占用带宽小。

    一般解析json数据的方法有两种,一个是运用android的SDK下面自带的包进行解析,一个是运用第三方的包进行解析,比如google出的Gson,还有阿里出的FastJson,其他的不赘述。

   比如对于下面一个json数据的解析:

{"Name" : "zhangsan",

 "Course":[

{"id":"1001","courseName":"计算机图形学","GPA":"4.0"},{"id":"1002","courseName":"离散数学","GPA":"3.5"}

]}


自带SDK解析

/**
	 * str为传入的json数据
	 * @param str
	 */
	public void readJson(String str){
		try {
			JSONObject jsonObject = new JSONObject(str);
			String flag = jsonObject.getString("Name");
			//获取jsonarray数组
			JSONArray jsonArray = jsonObject.getJSONArray("Course");
			for (int i = 0; i < jsonArray.length(); i++) {
				JSONObject object = jsonArray.getJSONObject(i);
				String id = object.getString("id");
				String courseName = object.getString("courseName");
				String GPA = object.getString("GPA");
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}

第二种,运用gson进行解析

首先需要导入gson开发的包,然后创建一个javabean

public class Course {

	private String id;
	private String courseName;
	private String GPA;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getCourseName() {
		return courseName;
	}

	public void setCourseName(String courseName) {
		this.courseName = courseName;
	}

	public String getGPA() {
		return GPA;
	}

	public void setGPA(String gPA) {
		GPA = gPA;
	}

}
public class People {

	private String Name;
	private List<Course> course;

	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}

	public List<Course> getCourse() {
		return course;
	}

	public void setCourse(List<Course> course) {
		this.course = course;
	}


}

然后进行解析json

//str为获取的json数据,暂时置空
	private String str ="";
		
	public People init(String str){
		Gson gson = new Gson();
		Type type = new TypeToken<People>() {}.getType();
		People people = gson.fromJson(str, type);
		return people;
	}

	public void readJson2(){
		People people = init(str);
		String name= people.getName();
		List<Course> courses = people.getCourse();
		for (Course course : courses) {
			String id = course.getId();
			String courseName = course.getCourseName();
			String gpa = course.getGPA();
		}
	}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值