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

  • 相关阅读:
    Blank page instead of the SharePoint Central Administration site
    BizTalk 2010 BAM Configure
    Use ODBA with Visio 2007
    Handling SOAP Exceptions in BizTalk Orchestrations
    BizTalk与WebMethods之间的EDI交换
    Append messages in BizTalk
    FTP protocol commands
    Using Dynamic Maps in BizTalk(From CodeProject)
    Synchronous To Asynchronous Flows Without An Orchestration的简单实现
    WSE3 and "Action for ultimate recipient is required but not present in the message."
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5267095.html
Copyright © 2011-2022 走看看