zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    一文了解网络编程之走进TCP三次握手和HTTP那些你不知道的事
    并发编程面试必备之ConcurrentHashMap源码解析
    java延迟队列DelayQueue及底层优先队列PriorityQueue实现原理源码详解
    聊一聊面试中常问的延时队列
    面试必备HashMap源码解析
    synchronized解锁源码分析
    synchronized的jvm源码加锁流程分析聊锁的意义
    jvm源码解析java对象头
    从ReentrantLock源码入手看锁的实现
    从synchronized和lock区别入手聊聊java锁机制
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131596.html
Copyright © 2011-2022 走看看