Java对象与json转换

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/liqingwei168/article/details/86580656

说明:本文章只写一些简单案例,并没有做过多说明。

案例为maven案例,pom.xml引入依赖

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.3</version>
</dependency>
<dependency>
  <groupId>net.sf.json-lib</groupId>
  <artifactId>json-lib</artifactId>
  <version>2.4</version>
  <classifier>jdk15</classifier>
</dependency>
<dependency>
  <groupId>commons-beanutils</groupId>
  <artifactId>commons-beanutils</artifactId>
  <version>1.7.0</version>
</dependency>
<dependency>
  <groupId>commons-collections</groupId>
  <artifactId>commons-collections</artifactId>
  <version>3.1</version>
</dependency>
<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.5</version>
</dependency>
<dependency>
  <groupId>net.sf.ezmorph</groupId>
  <artifactId>ezmorph</artifactId>
  <version>1.0.3</version>
</dependency>

接下来,开始

package one.model;

public class Students {
    private String name;
    private String sex;
    private Integer age;

    //未节省空间,这里的get set方法就不写了,粘贴代码的时候记得加上。

}

下面main方法中去掉注释可以运行制定的方法:

package one.mains;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import one.model.Students;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JsonDemo {

    public static void main(String [] arg){
        /*******************************************************/
        //strToJson();//Java字符串  转  json字符串
        /*******************************************************/
        //jsonToStr();//json字符串  转  Java字符串
        /*******************************************************/
        //newsToStr();//将Java对象  转  json字符串
        /*******************************************************/
        //jsonToNews();//将json字符串 转  Java对象
        /*******************************************************/
        //jsonToArray();//将json字符串 转 对象数组(集合)
        /*******************************************************/
        //arrayToJson();//将数组(集合) 转 json字符串
        /*******************************************************/
        //jsonToMapOne();//将json字符串 转 map<Object,Object>
        /*******************************************************/
        //mapToJsonOne();//将map<String,Object> 转 json字符串
        /*******************************************************/
        //jsonToMapTwo();//将json字符串 转 map<String,Students>
        /*******************************************************/
        //mapToJsonTwo();//将map<String,Students> 转 json字符串
    }

    //将json字符串转成Java字符串
    public static void jsonToStr(){
        String s ="{\"name\":\"zhangsan\",\"sex\":\"nv\",\"age\":8}";
        JSONObject json = JSONObject.fromObject(s);
        System.out.println(json.toString());
    }

    //将Java字符串转成json字符串
    public static void strToJson(){
        String json = "{'name':'xiaosan'}";
        JSONObject jsonObj = JSONObject.fromObject(json);
        String name = jsonObj.getString("name");
        System.out.print(name);
    }

    //将Java对象转成json字符串
    public static void newsToStr(){
        Students students = new Students();
        students.setName("hehe");
        students.setSex("nan");
        students.setAge(10);
        String str = JSON.toJSONString(students);
        System.out.print(str);
    }

    //将json字符串转成Java对象
    public static void jsonToNews(){
        String s ="{\"name\":\"zhangsan\",\"sex\":\"nv\",\"age\":8}";
        //方法一
        Students studentA = JSON.parseObject(s, Students.class);
        System.out.println(studentA.getName());
        //方法二
        Students studentB = JSON.parseObject(s, new TypeReference<Students>() {});
        System.out.println(studentB.getSex());
        //方法三
        JSONObject jsonObject=JSONObject.fromObject(s);
        Students studentC=(Students)JSONObject.toBean(jsonObject, Students.class);
        System.out.println(studentC.getAge());
    }

    //将json字符串转成对象数组(集合)
    public static void jsonToArray() {

        String array="[{\"name\":\"xiaohong\",\"age\":23},{\"name\":\"xiaowang\",\"age\":24}]";
        //转为集合
        JSONArray jsonarray = JSONArray.fromObject(array);
        Object object = jsonarray.get(0);
        JSONObject jsonObject=JSONObject.fromObject(object);
        Students students=(Students)JSONObject.toBean(jsonObject,Students.class);
        System.out.println(students.getName());
        //转化为数组
        Students[] ss =(Students[])JSONArray.toArray(JSONArray.fromObject(array),Students.class);
        for (Students student : ss) {
            System.out.println(student.getAge());
        }
    }

    //将数组(集合)转成json字符串
    public static void arrayToJson() {
        List<Students> list = new ArrayList<Students>();
        Students studentsA = new Students();
        studentsA.setName("hello");
        studentsA.setSex("nan");
        studentsA.setAge(18);
        list.add(studentsA);
        Students studentsB = new Students();
        studentsB.setName("world");
        studentsB.setSex("nv");
        studentsB.setAge(18);
        list.add(studentsB);

        JSONArray listArray=JSONArray.fromObject(list);
        System.out.println("listArray:"+listArray.toString());
    }

    //将json字符串转成map<Object,Object>
    public static void jsonToMapOne(){

        String str = "{\"0\":\"wangchao\",\"1\":\"mahan\",\"2\":\"zhanglong\",\"3\":\"zhaohu\"}";
        //方法一
        Map maps = (Map)JSON.parse(str);
        System.out.println("这个是用JSON类来解析JSON字符串!!!");
        for (Object map : maps.entrySet()){
            System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());
        }
        System.out.println("-------------------------------------------");
        //方法二
        Map mapTypes = JSON.parseObject(str);
        System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");
        for (Object obj : mapTypes.keySet()){
            System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));
        }
        System.out.println("-------------------------------------------");
        //方法三
        Map mapType = JSON.parseObject(str,Map.class);
        System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");
        for (Object obj : mapType.keySet()){
            System.out.println("key为:"+obj+"值为:"+mapType.get(obj));
        }

    }

    //将map<Object,Object>转成json字符串
    public static void mapToJsonOne() {
        Map map = new HashMap();
        map.put("success", "10");
        map.put("error", "20");
        JSONObject json = JSONObject.fromObject(map);
        //JSONObject json =new JSONObject(map);
        System.out.println(json);
        System.out.println(json.toString());
    }

    //将json字符串转成map<String,Students>
    public static void jsonToMapTwo() {
        String mapStr="{\"0\":{\"name\":\"xiaohong\",\"age\":23},\"1\":{\"name\":\"xiaowang\",\"age\":24}}";
        Map<String,Students> maps = JSON.parseObject(mapStr, new TypeReference<Map<String,Students>>(){});
        System.out.println(maps.get("0").getName());
    }

    //将map<String,Students>转成json字符串
    public static void mapToJsonTwo() {
        Students students=new Students();
        students.setName("JSON");
        students.setAge(23);
        students.setSex("nv");
        Map<String,Students> map=new HashMap<String,Students>();
        map.put("first", students);

        //1、JSONObject
        JSONObject mapObject=JSONObject.fromObject(map);
        System.out.println("mapObject"+mapObject.toString());

        //2、JSONArray
        JSONArray mapArray=JSONArray.fromObject(map);
        System.out.println("mapArray:"+mapArray.toString());
    }





}

总结一点点。。。。。。。。。。。。

猜你喜欢

转载自blog.csdn.net/liqingwei168/article/details/86580656