需要导入两个jar包
json-lib是用于转换json字符串的核心jar包,上面那个是辅助的。
转换json数组就是JSONArray.fromObject(arrayList).toString()
转换json对象就是JSONObject.fromObject(arrayList).toString()
1、需要json的相关jar包2、设置json格式字符串:
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}"
3、建立相应的类:
public class StudentList {
List<Student>student
public List<Student>getStudent() {
return student
}
public void setStudent(List<Student>student) {
this.student = student
}
}
public class Student {
private String name
private int age
//private StudentClass studentClass
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public int getAge() {
return age
}
public void setAge(int age) {
this.age = age
}
}
有两种方法实现:(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person>persons = new ArrayList<Person>()
for (int i = 0i <3i++) {
persons.add(new Person("138******67", "女", true, "北京朝阳区"))//填充Java实体类集合
}
JSONArray array = new JSONArray()// Json格式的数组形式
JSONObject obj//json格式的单个对象形式
for (int i = 0i <persons.size()i++) {
obj = new JSONObject()
//依次填充每一个Java实体对象
try {
obj.put("phone", persons.get(i).getPhone())//json通过put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex())
obj.put("married", persons.get(i).getMarried())
obj.put("address", persons.get(i).getAddress())
array.put(obj)//将JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace()
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区")
//创建GSON对象
Gson gson = new Gson()
//调用toJson方法即可转换为字符串的json格式
String json = gson.toJson(person)