android jackson 解析json字符串,android:json解析的两个工具:Gson和Jackson的使用小样例...

本文介绍了Android开发中常用的两个JSON库——Gson和Jackson的使用方法。通过示例展示了如何将Java对象转换为JSON字符串,以及如何将JSON字符串反序列化回Java对象。Gson通过toJson和fromJson方法实现转换,Jackson则使用writeValueAsString和readValue方法。文章还提供了简单的Student和School类作为示例。
摘要由CSDN通过智能技术生成

1.简单介绍

json是android与server通信过程中经常使用的数据格式,比如。例如以下是一个json格式的字符串:

{"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","age":20},{"name":"stu1","id":"10001","age":21},{"name":"stu1","id":"10002","age":22}]}

2.android中经常使用的两个json库为:Gson和Jackson,一下就看一下它们是怎样将对象转化为json字符串,以及怎样将json字符串转化为java对象。

定义Student类:

/*

* $filename: Student.java,v $

* $Date: 2014-5-12 $

* Copyright (C) ZhengHaibo, Inc. All rights reserved.

* This software is Made by Zhenghaibo.

*/

package com.example.testjson;

/*

*@author: ZhengHaibo

*web: http://blog.csdn.net/nuptboyzhb

*mail: [email protected]

*2014-5-12 Nanjing,njupt,China

*/

public class Student {

private String name;

private String id;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

定义School类:

/*

* $filename: School.java,v $

* $Date: 2014-5-12 $

* Copyright (C) ZhengHaibo, Inc. All rights reserved.

* This software is Made by Zhenghaibo.

*/

package com.example.testjson;

import java.util.List;

/*

*@author: ZhengHaibo

*web: http://blog.csdn.net/nuptboyzhb

*mail: [email protected]

*2014-5-12 Nanjing,njupt,China

*/

public class School {

private String name;

private String address;

List students;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public List getStudents() {

return students;

}

public void setStudents(List students) {

this.students = students;

}

}

初始化一个School的java对象,待使用:

private School initSchoolData(){

School school = new School();

school.setAddress("Nanjing");

school.setName("NUPT");

List list = new ArrayList();

for(int i= 0;i<3;i++){

Student student = new Student();

student.setAge(20+i);

student.setId("1000"+i);

student.setName("stu"+1);

list.add(student);

}

school.setStudents(list);

return school;

}

3.使用Gson。进行java对象与json字符串之间的相互转换

private void testGson(){

School school = initSchoolData();

Gson gson = new Gson();

//将对象转化为json字符串

String jsonString = gson.toJson(school).toString();

//打印

System.out.println("GSON="+jsonString);

/******切割线*****/

//将字符串转化为JSON对象

School resultSchool = gson.fromJson(jsonString, School.class);

//打印

System.out.println(resultSchool.getStudents().get(0).getName());

}

可见,Gson是通过toJson和fromJson两个方法进行转换的,使用起来十分方便。

4.使用Jackson

private void testJackson(){

School school = initSchoolData();

ObjectMapper objectMapper = new ObjectMapper();

String jsonString = "";

//将对象转化为Json字符串

try {

jsonString = objectMapper.writeValueAsString(school);

System.out.println("Jackson="+jsonString);

} catch (JsonProcessingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//将json字符串解析成java对象

try {

School resultSchool = objectMapper.readValue(jsonString, School.class);

//打印

System.out.println(resultSchool.getStudents().get(0).getName());

} catch (JsonParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (JsonMappingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

使用Jackson,主要是使用writeValueAsString和readValue这两个方法。此外。Jackson的writeValue和readValue有非常多种參数类型,适用于多中场合。

注意:以上仅仅是这两个工具类的基本使用方法,很多其它了解。參见官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值