`
bugyun
  • 浏览: 541538 次
社区版块
存档分类
最新评论

fastjson 框架JSON、List、Map直接相互转换

    博客分类:
  • json
 
阅读更多

 

App.java

 

package com.bugyun.fastjson;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.bugyun.fastjson.po.Group;
import com.bugyun.fastjson.po.User;

/**
 * 
 * 项目名称:fastjson 1.2.31
 * 类名称:App.java 
 * 类描述:
 *      1. JSON.toJSONString() 转换为String
 *      2. JSON.parseObject(userArr, new TypeReference<T>() {}); 转换为对象
 *      3. JSON.parseArray(userArr,T.class);  转换为T的集合;
 * 创建人:beyond 
 * 创建时间:2017年4月26日 下午5:43:43 
 * 修改人: 
 * 修改时间: 
 * 修改备注: 
 * @version
 */
public class App {
    public static void main(String[] args) {
        Group group = new Group();
        group.setId(0L);
        group.setName("admin");

        User guestUser = new User();
        guestUser.setId(2L);
        guestUser.setName("guest");

        User rootUser = new User();
        rootUser.setId(3L);
        rootUser.setName("root");

        group.addUser(guestUser);
        group.addUser(rootUser);
        
        String groupJson = objectCastToString(group);
        System.out.println("objectCastToString: "+groupJson);

        String userArr = "[{\"id\":2,\"name\":\"guest\"},{\"id\":3,\"name\":\"root\"}]";
        List<User> listOne = castToPOListOne(userArr);
        for (User user : listOne) {
            System.err.println(" one: "+user);
        }
        
        List<User> Two = castToPOListTwo(userArr);
        for (User user : Two) {
            System.out.println(" two: "+user);
        }

        group = castToPO(groupJson);
        System.err.println("castToPO: "+group);
        
        String dateTime =dateCastToString(new Date(), "yyyy-MM-dd HH:mm:ss");
        System.out.println("dateCastToString: "+dateTime);
        
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("name", "hello");
        map.put("age", "11");
        String mapStr = mapCastToString(map);
        System.err.println("mapCastToString: "+mapStr);
        
        map = castToMap(mapStr);
        System.out.println("castToMap: "+map);
        
        List<User> users = new ArrayList<>();
        users.add(rootUser);
        users.add(guestUser);
        String listStr = listCastToString(users);
        System.out.println("listCastToString: "+listStr);
    }


    /**
     * userArr 转换为 user列表
     * @param userArr user对象拼接的数组
     * @return    
     * @author beyond
     * @data:2017年4月26日下午5:26:19
     */
    static List<User> castToPOListOne(String userArr) {
        List<User> list = JSON.parseObject(userArr, new TypeReference<List<User>>() {
        });
        return list;
    }
    
    static List<User> castToPOListTwo(String userArr) {
        List<User> list = JSON.parseArray(userArr,User.class);  
        return list;
    }
    
    static Map<String,Object> castToMap(String mapStr) {
        Map<String,Object> map = JSON.parseObject(mapStr,new TypeReference<Map<String,Object>>(){});
        return map;
    }
    

    /**
     * Group JSON 转换为 Group 对象
     * @param groupJson
     * @return    
     * @author beyond
     * @data:2017年4月26日下午5:25:49
     */
    static Group castToPO(String groupJson) {
        Group group = JSON.parseObject(groupJson, Group.class);
        return group;
    }

    /**
     * 日期转换为指定时间格式
     * @param date  
     * @param pattern
     * @return    
     * @author beyond
     * @data:2017年4月26日下午5:33:20
     */
    static String dateCastToString(Date date , String pattern) {
        String dateTime = JSON.toJSONStringWithDateFormat(date, pattern);
        return dateTime;
    }
    
    /**
     * Group 对象转换为 String
     * @return    
     * @author beyond
     * @data:2017年4月26日下午5:27:04
     */
    static String objectCastToString(Group group) {
        String jsonString = JSON.toJSONString(group);
        return jsonString;
    }
    
    /**
     * map 转为String
     * @param map
     * @return    
     * @author beyond
     * @data:2017年4月26日下午5:50:53
     */
    static String mapCastToString(Map<String,Object> map) {
        String str = JSON.toJSONString(map);
        return str;
    }
    
    /**
     * list 转 String
     * @param users
     * @return    
     * @author beyond
     * @data:2017年4月26日下午5:51:12
     */
    static String listCastToString(List<User> users) {
        String str = JSON.toJSONString(users);
        return str;
    }
    
}

 

 

 

User:

package com.bugyun.fastjson.po;

public class User {
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + "]";
    }
}

 

Group.java

package com.bugyun.fastjson.po;

import java.util.ArrayList;
import java.util.List;

public class Group {
    private Long id;
    private String name;
    private List<User> users = new ArrayList<User>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

    public void addUser(User user) {
        users.add(user);
    }

    @Override
    public String toString() {
        return "Group [id=" + id + ", name=" + name + ", users=" + users + "]";
    }
    
}

 

 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.bugyun</groupId>
	<artifactId>fastjson</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>fastjson</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.31</version>
		</dependency>
	</dependencies>

	<build>
		<!-- jar 包名称 -->
		<finalName>bugyunFastjson</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics