zoukankan      html  css  js  c++  java
  • Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换

            总结一下利用Json相关jar包实现Java对象和集合与Json字符串之间的互相转换:

            1、创建的User类:

    package com.ghj.packageofdomain;
    
    public class User {
    	
    	private int id;
    	private String name;
    	private String gender;
    
    	public User() {
    
    	}
    
    	public User(int id, String name, String gender) {
    		this.id = id;
    		this.name = name;
    		this.gender = gender;
    	}
    	
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getGender() {
    		return gender;
    	}
    	public void setGender(String gender) {
    		this.gender = gender;
    	}
    
    	@Override
    	public String toString() {
    		return "id=" + id + ",name=" + name + ",gender=" + gender;
    	}
    }
            2、Java对象和集合与Json字符串之间的互相转换:
            i、Java对象与Json字符串之间的互相转换:

    package com.ghj.packageoftest;
    
    import net.sf.json.JSONObject;
    
    import com.ghj.packageofdomain.User;
    
    public class Test{
    
    	public static void main(String[] args) {
    		System.out.println(objectToJsonString());
    		jsonStringToObject(objectToJsonString());
    	}
    	
    	/**
    	 * 将Java对象转换为Json字符串
    	 * 
    	 * @author 高焕杰
    	 */
    	static String objectToJsonString(){
    		JSONObject jsonObject = JSONObject.fromObject(new User(1, "张三", "男"));
    	    return jsonObject.toString();
    	}
    	
    	/**
    	 * 将Json字符串转换为Java对象
    	 * 
    	 * @author 高焕杰
    	 */
    	static void jsonStringToObject(String jsonString){
    		JSONObject jsonObject = JSONObject.fromObject(jsonString);
    		User user = (User)JSONObject.toBean(jsonObject, User.class);
    		System.out.println(user);
    	}
    }
            ii、Java集合与Json字符串之间的互相转换:
    package com.ghj.packageoftest;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import net.sf.json.JSONArray;
    
    import com.ghj.packageofdomain.User;
    
    public class Test{
    
    	public static void main(String[] args) {
    		System.out.println(collectionToJsonString());
    		jsonStringToCollection(collectionToJsonString());
    	}
    	
    	/**
    	 * 将Java集合转换为Json字符串
    	 * 
    	 * @author 高焕杰
    	 */
    	static String collectionToJsonString(){
    		List<User> userList = new ArrayList<User>();
    		userList.add(new User(1, "张三", "男"));
    		userList.add(new User(2, "李四", "女"));
    		userList.add(new User(3, "王五", "男"));
    		JSONArray jsonArray = JSONArray.fromObject(userList);
    	    return jsonArray.toString();
    	}
    
    	/**
    	 * 将Json字符串转换为Java集合
    	 * 
    	 * @author 高焕杰
    	 */
    	static void jsonStringToCollection(String jsonString){
    		JSONArray jsonArray = JSONArray.fromObject(jsonString);
    		@SuppressWarnings("unchecked")
    		List<User> userList = (List<User>)JSONArray.toCollection(jsonArray, User.class);
    		for (User user : userList) {
    			System.err.println(user);
    		}
    	}
    }
            注意:

            1、上面User类不仅有有參构造函数还有无參构造函数,有人可能会问为什么要有无參的构造函数呢?呵呵呵。为了方面构造User实例,加入了有參数的构造函数。但是正由于有了这个构造函数才必需要加入无參构造函数,否则会出现以下异常:

            假设不嫌构造User实例繁杂全然能够去掉这两个构造函数的——事实上这样的情况下无參构造函数还是存在的,呵呵呵,总之中的一个句话要实现Json字符串转化为Java实例或集合则相关类中要有无參的构造函数。

            2、 Java对象和集合与Json之间的互相转换需要借助对应的jar包实现,这些jar包能够在Demo中获取到

            【0分下载Demo

  • 相关阅读:
    数学趣题——汉诺塔
    数学趣题——选美比赛
    数学趣题——计算组合数
    (结构型模式)Proxy——代理模式
    SHELL脚本的基础知识2——使用结构化命令
    数学趣题——寻找假币
    Cocoa使用自定义对话框的方法
    回调函数
    ObjectiveC 内存管理(转)
    mac 密码输入框控制——只能输入数字和字母,禁止特殊字符的输入
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5267095.html
Copyright © 2011-2022 走看看