zoukankan      html  css  js  c++  java
  • 使用json格式的数据进行通信

    4 Java对象转换成JSON

    4.1 问题

    将Java对象转换成符合JSON格式的字符串,并测试。

    4.2 方案

    使用与json-lib.jar相关的jar文件完成类型的转换。

    4.3 步骤

    步骤一:新建实体类Friend

    图- 15

    步骤二:新建JSONTest类

    在该类中添加四个方法,分别用于测试Java对象转换为JSON字符串,Java数组转换为JSON字符串,JSON字符串转换为Java对象,JSON字符串转换为Java数组。

    步骤三:引入jar文件

    在添加jar文件的时候,需要导入6个jar文件,缺一不可。如图-16所示。

    图- 16

    步骤四:添加具体的转换方法:Java对象转换为JSON字符串

    图- 17

    步骤五:运行结果

    图– 18

    步骤六:Java数组(集合)转换为JSON字符串

    图– 19

    运行结果:

    图- 20

    步骤七:JSON字符串转换为Java对象

    图– 21

    运行结果:

    图- 22

    步骤八:JSON字符串转换为Java数组(集合)

    图– 23

    运行结果:

    图- 24

    4.4 完整代码

    Friend.java文件代码如下:

    package bean;
    
    public class Friend {
    	private String name;
    	private int age;
    
    	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 toString() {
    		return this.name + "   " + this.age;
    	}
    }
    

    JSONTest.java文件代码如下:

    package json;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    import bean.Friend;
    
    public class JSONTest {
    	/**
    	 * Java对象转换为JSON字符串
    	 */
    	public static void test1() {
    		Friend f = new Friend();
    		f.setName("Zoro");
    		f.setAge(19);
    		JSONObject jsonObj = JSONObject.fromObject(f);
    		String jsonStr = jsonObj.toString();
    		System.out.println(jsonStr);
    	}
    
    	/**
    	 * Java数组转换为JSON字符串
    	 */
    	public static void test2() {
    		List<Friend> fs = new ArrayList<Friend>();
    		for (int i = 0; i < 3; i++) {
    			Friend f = new Friend();
    			f.setName("Zoro" + (i + 1));
    			f.setAge(19 + i);
    			fs.add(f);
    		}
    		JSONArray jsonArr = JSONArray.fromObject(fs);
    		String jsonStr = jsonArr.toString();
    		System.out.println(jsonStr);
    	}
    	/**
    	 * JSON字符串转换为Java对象
    	 */
    	public static void test3(){
    		String jsonStr = "{"name":"Luffy","age":17}";
    		JSONObject jsonObj = JSONObject.fromObject(jsonStr);
    		Friend friend = (Friend)JSONObject.
    					toBean(jsonObj, Friend.class);
    		System.out.println(friend);
    	}
    	
    	/**
    	 * JSON字符串转换为Java数组
    	 */
    	public static void test4(){
    		String jsonStr = "[{"name":"Luffy","age":17}," +
    				"		{"name":"Zoro","age":19}]";
    		JSONArray jsonArr = JSONArray.fromObject(jsonStr);
    		List<Friend> friends = (List<Friend>)JSONArray.
    					toCollection(jsonArr, Friend.class);
    		for(Friend f :friends){
    			System.out.println(f);
    		}
    	}
    
    	public static void main(String[] args) {
    		 //test1();
    		//test2();
    		//test3();
    		test4();
    	}
    
    }
  • 相关阅读:
    细说linux IPC(四):posix 共享内存
    百世经纶一页书
    【机器学习PAI实践二】人口普查统计
    JOptionPane的经常使用4种对话框
    linux pip install gdal apyt-get install libgdal-dev export cplus_path=/usr/include/gdal export c_path=/usr/include/gdal
    linux too many files
    ab 压测
    centos6.6 ftp 配置 修改默认端口等
    openstack instance change storage dir
    事件冒泡(转)
  • 原文地址:https://www.cnblogs.com/fengdashen/p/5302438.html
Copyright © 2011-2022 走看看