关于JSON

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

原文地址:https://www.cnblogs.com/itmyhome/p/4131596.html