Java基本类型,List,Map 转化为JSON格式:
Person.java
import java.util.Date;
public class Person {
private String name;
private int age;
private String birthday;
public Person(String name,int age,String birthday){
this.name = name;
this.age = age;
this.birthday = birthday;
}
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;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
JSONTest.java
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.DataFormatException;
import net.sf.json.JSONArray;
public class JSONTest {
private String title; // 标题
private String author; // 作者
private float price; // 定价
private String publication; // 出版日期
private List<Person> persons = new ArrayList<Person>(); // List
private Map map = new HashMap(); // Map
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getPublication() {
return publication;
}
public void setPublication(String publication) {
this.publication = publication;
}
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public static void main(String[] args) throws ParseException {
JSONTest mj = new JSONTest();
// 日期设置
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(d);
// 为属性设置值
mj.setTitle("乔布斯传记");
mj.setAuthor("未知");
mj.setPrice(100.0f);
mj.setPublication(date);
// 设置List
List<Person> list = new ArrayList<Person>();
list.add(new Person("zhangsan", 20, date));
mj.setPersons(list);
// 设置Map
Map map = new HashMap();
map.put("a", "i am a");
map.put("b", "i am b");
mj.setMap(map);
//调用JSONArray.fromObject()方法 转化为JSON对象
JSONArray jsons = JSONArray.fromObject(mj);
System.out.println(jsons.toString());
}
}
在使用JSON时 不只是引入一个JSON包就可以的 不然会报java.lang.ClassNotFoundException:异常
JSON所依赖jar包如下(共6个)
commons-beanutils-1.8.3.jar
commons-lang-2.1.jar
ezmorph-1.0.2.jar
json-lib-2.4-jdk15.jar
如果出现如下错误 说明还缺少如下包
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap
commons-collections-3.2.jar
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
commons-logging-1.1.1.jar