您好!欢迎来到源码码网

Java对象与json转换

  • 源码教程
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-04-28 17:46
  • 阅读:881

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


案例为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());
    }
}

原文链接:https://blog.csdn.net/liqingwei168/java/article/details/86580656


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 常用测试压力工具使用介绍
  • 常用测试压力工具使用介绍
  • ab 是 ApacheBench 工具的缩写,它是一个HTTP压力测试工具。让我详细说明如何测试:1. 安装ApacheBenchWindows系统:方法一:安装XAMPP或WAMP(自带ab)下载地址:https://www.apachefriends.org/zh_cn/index.html安装后,ab工具在:C:xamppapacheinab.exe方法二:使
  • 开发工具
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-13 20:27
  • 阅读:64
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:171
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:165
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:70
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:99
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部