一  json -> entity

User.java

package com.xxx.hotel.train.json.json2entity;

import java.io.Serializable;

/**
 * @author balfish
 * @date 15-7-22
 */
public class User implements Serializable {
    private static final long serialVersionUID = 5483047693755054496L;

    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

Json2EntityTest.java

package com.xxx.hotel.train.json.json2entity;

import net.sf.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * @author balfish
 * @date 15-7-22
 */
public class Json2EntityTest {

    // json转化为entity,list和map同理,此处不作累述
    private static ObjectMapper objectMapper = null;

    public static void main(String[] args) throws Exception{
        objectMapper = new ObjectMapper();
        writeJson2Entity();
    }

    private static void writeJson2Entity() throws Exception {
        String json = "{ \"username\":\"balfish\" , \"password\":\"balfish\"}";
        System.out.println(objectMapper.readValue(json, User.class));

        JSONObject jsonObject = JSONObject.fromObject(json);
        System.out.println(jsonObject);
    }

}

二  entity -> json

User.java

package com.xxx.hotel.train.json.entity2json;

import java.io.Serializable;

/**
 * @author balfish
 * @date 15-7-22
 */
public class User implements Serializable {
    private static final long serialVersionUID = 359755144270845410L;
    private String username;
    private String password;
    private Car car;

    public User(String username, String password, Car car) {
        this.username = username;
        this.password = password;
        this.car = car;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Car getCar() {
        return car;
    }

    public void setCar(Car car) {
        this.car = car;
    }

    @Override
    public String toString() {
        return "User{" +
                "car=" + car +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

Car.java

package com.xxx.hotel.train.json.entity2json;

import java.io.Serializable;

/**
 * @author balfish
 * @date 15-7-22
 */
public class Car implements Serializable {

    private static final long serialVersionUID = -1013056738822619070L;
    private String color;
    private String country;

    public Car(String color, String country) {
        this.color = color;
        this.country = country;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    @Override
    public String toString() {
        return "Car{" +
                "color='" + color + '\'' +
                ", country='" + country + '\'' +
                '}';
    }
}

Entity2JsonTest.java

package com.xxx.hotel.train.json.entity2json;

import java.io.IOException;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

/**
 * @author balfish
 * @date 15-7-22
 */
public class Entity2JsonTest {

    private static final Logger LOGGER = LoggerFactory.getLogger(Entity2JsonTest.class);
    private static ObjectMapper objectMapper = null;
    private static User user = null;

    private static void writeEntity2Json() throws IOException {
        /**
         * 小心 objectMapper.writeValue(System.out, user); 这个方法只会打印一次结果 因为在这个重载方法中在向控制台进行重定向以后会有一个流关闭的过程,那么将无法继续写入 所以慎用
         */
        System.out.println("用objectMapper的方法......(entity->json)");
        System.out.println(objectMapper.writeValueAsString(user));
    }

    private static void writeList2Json() throws IOException {
        System.out.println("用objectMapper的方法......(list->json)");
        List<User> userList = Lists.newArrayList();
        userList.add(user);

        User user = new User("sam", "sam", new Car("green", "England"));
        userList.add(user);
        System.out.println(objectMapper.writeValueAsString(userList));

        System.out.println("用JsonArray的方法......(list->json)");
        List<Object> list = Lists.newArrayList();
        list.add(1);
        list.add(true);
        list.add('j');
        list.add(new char[] { 'j', 's', 'o', 'n' });
        list.add(null);
        list.add("json");
        list.add(new String[] { "json", "-", "lib" });

        System.out.println(JSONArray.fromObject(list));
    }

    private static void writeMap2Json() throws IOException {
        /**
         * objectMapper.writeValue(new File("/home/balfish/jsonmap.txt"), stringObjectMap);
         * 如上,wtiteValue有很多重载方法,可以根据需要选择
         */
        System.out.println("用objectMapper的方法......(map->json)");
        Map<String, Object> stringObjectMap = Maps.newLinkedHashMap();

        stringObjectMap.put("username", user.getUsername());
        stringObjectMap.put("password", user.getPassword());
        stringObjectMap.put("user", user);
        System.out.println(objectMapper.writeValueAsString(stringObjectMap));

        /**
         * 这里的map如果key不是string的话,会报错如下 Exception in thread "main" net.sf.json.JSONException:
         * java.lang.ClassCastException: JSON keys must be strings.
         */
        System.out.println("用JSONObject的方法......(map->json)");
        Map<String, Object> map = Maps.newLinkedHashMap();
        map.put("1", "Beijing");
        map.put("2", "Shanghai");
        /**
         * JSONObject的fromObject方法   {"1":"Beijing","2":"Shanghai"}
         * JSONArray 的fromObject方法  [{"1":"Beijing","2":"Shanghai"}]
         * 区别目前来看在于那个中括号
         */
        System.out.println(JSONObject.fromObject(map));
    }

    public static void main(String[] args) {
        user = new User("balfish", "balfish", new Car("red", "China"));
        objectMapper = new ObjectMapper();
        try {
            writeEntity2Json();
            writeList2Json();
            writeMap2Json();
        } catch (IOException e) {
            LOGGER.error("(entity/list/map)转换成json时出错", e);
        }
    }
}

三 需要的额外maven依赖包

   <!-- json-lib -->
      <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

   <!-- Jackson mapper -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

json 与entity/list/map的转换的更多相关文章

  1. 用jackson包实现json、对象、Map之间的转换

    jackson API的使用 用jackson包实现json.对象.Map之间的转换

  2. java json与map互相转换(二)

      java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...

  3. java json与map互相转换(一)

      java json与map互相转换(一) CreationTime--2018年7月16日 Author:Marydon 1.准备工作 所需jar包:json-20180130.jar impor ...

  4. java中 json和bean list map之间的互相转换总结

    JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib]   在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...

  5. 在js中将map对象转换成json 和 js对cookie的操作

    在js中将map对象转换成json //msp转objectlet obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; }//o ...

  6. C++实现json字符串与map的转换

    开源资源库 jsoncpp-src-0.5.0.tar.gz:https://sourceforge.net/projects/jsoncpp/ jsoncpp-master.ziphttps://g ...

  7. ES6中Json、String、Map、Object之间的转换

    /** *字符串转json * */ static stringToJson(data){ return JSON.parse(data); } /** *json转字符串 */ static jso ...

  8. Json,String,Map之间的转换

    前提是String的格式是map或json类型的 String 转Json JSONObject  jasonObject = JSONObject.fromObject(str); String 转 ...

  9. fastjson将json字符串转化成map的五种方法

    package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...

随机推荐

  1. VMware下安装CentOS6.5

    一.工具 1.VMware-workstation-full-12.5.0-4352439.exe 2.CentOS-6.5-x86_64-minimal.iso 二.安装VMware虚拟机 1.选择 ...

  2. F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同

    F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同 F4IF_FIELD_VALUE_REQUEST主要功能是将表里的字段对应的sea ...

  3. concurrent实用类

    improt java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.RejectedExecutionHandler; ...

  4. 原 iOS深入学习(Block全面分析)http://my.oschina.net/leejan97/blog/268536

    原 iOS深入学习(Block全面分析) 发表于1年前(2014-05-24 16:45)   阅读(26949) | 评论(14) 39人收藏此文章, 我要收藏 赞21 12月12日北京OSC源创会 ...

  5. linux下安装tomcat,并设置自动启动

    在linux系统下,设置某个服务自启动的话,需要在/etc/rcX.d下挂载,还要在/etc/init.d/下写启动脚本的 在/etc/init.d/下新建一个文件tomcat(需要在root权限下操 ...

  6. IIS SSL取消证书合法性验证

    cscript adsutil.vbs set w3svc/certcheckmode 1win 2003 IIS 6 以下执行以上代码,去除证书的合法性验证 cscript adsutil.vbs ...

  7. 【转载】javadoc学习笔记和可能的注意细节

    转载自:http://www.cnblogs.com/xt0810/p/3630996.html [前面的话] 这次开发项目使用jenkins做持续集成,PMD检查代码,Junit做单元测试,还会自动 ...

  8. 语言总结—C/C++

    参考<程序员面试宝典> 1. 基本概念 1.1 赋值语句 例1. 按位与操作,例如:a=3,b=3,a&b值等于 0011 & 0011 结果还是0011,那么值还是3: ...

  9. TortoiseGit HTTPS方式保存密码最简单的方法

    在TortoiseGit的设置 -> git 中选择 编辑本地 .git/config 在最后增加下面内容: [credential] helper = store

  10. css3选择器:nth-child和nth-of-type之间的差别

    <section> <p>我是第1个p标签</p> <p>我是第2个p标签</p> </section> 然后对应2个选择器对应 ...