一  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. Java NIO 内存映射文件

    Java NIO 内存映射文件 @author ixenos 文件操作的四大方法 前提:内存的访问速度比磁盘高几个数量级,但是基本的IO操作是直接调用native方法获得驱动和磁盘交互的,IO速度限制 ...

  2. C# 导出Word

    导出word文档(无模版): using Microsoft.Office.Interop.Word; public static string CreateWordFile(CaseVM model ...

  3. Leetcode 解题报告

    347. Top K Frequent Elements Given a non-empty array of integers, return the k most frequent element ...

  4. Struts2 注解零配置方法(convention插件使用)

    最近接触到一个新的项目,是做一个使用S2SH的电子商务商城的二次开发.之前使用过S2SH,在此之前的项目中,Struts2 使用的是XML配置而这个项目是使用注解.在这个项目中,注解还不需要使用Act ...

  5. Tiny6410之按键裸机驱动

    操作步骤: 第一步:查看开发板电路原理图 找到LED 和按键的管脚所对应的寄存器 LED:(见Tiny6410之LED裸机驱动) nLED_1 - GPK4 nLED_2 - GPK5 nLED_3 ...

  6. 连续多个git提交发生了冲突时

    git checkout -b test 创建并切换到分支test git clone git branch master git merge test 合并test到master (git merg ...

  7. AtomicInteger的用法

    J2SE 5.0提供了一组atomic class来帮助我们简化同步处理.基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增.减.赋值(更新)操作 ...

  8. mac版tomcat修改端口无法访问,80端口无法访问

    在mac上安装好了tomcat,修改了端口为80,没想到关闭tomcat时提示出错,而且无法访问,原来我犯了两个错误. 1.我用的是mac上的文本编辑.app打开然后修改的,重新修改为8080也不行, ...

  9. 【原创】Spring MVC项目搭建(使用Java配置)

    一.使用Intellij idea,新建maven项目,选择maven-archetype-webapp. 二.在src/main下新建文件夹,命名为java,并标注为source folder. 三 ...

  10. C语言 · 数的统计

    问题描述 在一个有限的正整数序列中,有些数会多次重复出现在这个序列中. 如序列:3,1,2,1,5,1,2.其中1就出现3次,2出现2次,3出现1 次,5出现1次. 你的任务是对于给定的正整数序列,从 ...