JSON与JAVA数据的转换。JSONObject.fromObject()和JSONObject.toBean()

article/2025/9/14 10:57:00

六个架包(666)

首先我们系统中要用到JSON解析,所以要引入这六个架包。饱饱

不引入这六个架包的话,使用JSONObject.fromObject  和 SONObject.toBean会报错,而且有的时候编译器不会告诉你是架包缺少的错误哦!

JSON 对象  与  JAVA对象的转换

  1. JSONObject   json = JSONObject.fromObject(String);//java转json

  2. JSONObject.toBean()//json转java

(1)java对象转json对象。

                ——HashMap转为JSON对象:JSONObject.fromObject()

          json对象又再次转换成java对象

                 ——JSON转为Map<String,String>:JSON强制转换

栗子1

public class JSONTest
{public static void main(String[] args){HashMap<String,String> map=new HashMap<String,String>();map.put("A", "B");//map={A=B}JSONObject json = JSONObject.fromObject(map);//json={"A":"B"}System.out.println(json.toString());//{"A":"B"}//再将json强转成mapMap<String,String> map2=(Map<String,String>)json;//{"A":"B"}System.out.println(map2.toString());}
}

忽然发现两件事:

一件事:HashMap中key值相同的话,前一个会被后一个覆盖。(原谅我太渣,现在才知道)

第二件事:相比于有道笔记,饱饱更爱写CSDN啊!

public class JSONTest
{public static void main(String[] args){HashMap<String,String> map=new HashMap<String,String>();map.put("A", "B");//map={A=B}map.put("A", "C");//map={A=C}JSONObject json = JSONObject.fromObject(map);//json={"A":"C"}System.out.println(json.toString());//{"A":"C"}//再将json强转成mapMap<String,String> map2=(Map<String,String>)json;//{"A":"C"}System.out.println(map2.toString());}
}

栗子2

public class JSONTest
{public static void main(String[] args){HashMap<String,String> map=new HashMap<String,String>();map.put("A", "B");//map={A=B}map.put("C", "D");//map={A=B, C=D}JSONObject json = JSONObject.fromObject(map);//json={"A":"B","C":"D"}System.out.println(json.toString());//再将json强转成mapMap<String,String> map2=(Map<String,String>)json;//{"A":"B","C":"D"}System.out.println(map2.toString());}
}

(2)java对象转json对象。

                ——String转为JSON对象:JSONObject.fromObject()

          json对象又再次转换成java对象

                 ——JSON转为Map<String,Object>:JSON强制转换

mapString =
{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}
}
public class JSONTest
{public static void main(String[] args){//将string类型的map数据转换为json的数据格式,在将json的数据格式的转换成java的    Map<String,Object>的数据类型String mapString = "{\"errmsg\":\"ok\",\"ErrorCode\":0,\"messageId\":\"f5d4566c4c833152b3feb42a8092ee6c\",\"invaliduser\":\"\",\"forbiddenUserId\":\"\",\"resJson\":{\"errmsg\":\"ok\",\"ErrorCode\":0,\"messageId\":\"f5d4566c4c833152b3feb42a8092ee6c\",\"invaliduser\":\"\",\"forbiddenUserId\":\"\"}}";//mapString={"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}JSONObject json = JSONObject.fromObject(mapString);//json	   ={"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}Map<String, Object> map = (Map<String, Object>)json;//map      ={"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}System.out.println("-----map:---"+map.toString());}
}

(3)java对象转json对象。

                 ——String转为JSON对象:JSONObject.fromObject()

          json对象又再次转换成java对象

                  ——JSON转为Student对象:JSONObject.toBean()

public class JSONTest
{public static void main(String[] args){String mapString = "{id:'211415034',name:'徐妍',age:'24'}";Student student = new Student();JSONObject json = JSONObject.fromObject(mapString);//json={"id":"211415034","name":"徐妍","age":"24"}student = (Student)JSONObject.toBean(json, Student.class);//曾经的学号:211415034    姓名:徐妍    年龄:24//JSONObject.toBean() 方法意为:从JSONObject 对象转换为 JAVA 对象。System.out.println(student);}
}
public class Student
{private int id;private String name;private int age;public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}	public String toString(){return "曾经的学号:"+this.id+"    姓名:"+this.name+"    年龄:"+this.age;}
}

 


http://chatgpt.dhexx.cn/article/ok46dVNv.shtml

相关文章

使用JSONObject解析

一、JSON数据 1、JSON串访问方式&#xff1a; 2、简介 – JSON(JavaScript Object Notation) 是一种轻量级的数据 交换格式。 – JSON 数据的书写格式&#xff1a; " KEY " : " VALUE " JSON 结构有两种结构&#xff1a; 1、对象&#xff08;表的一列&…

JSONObject使用方法详解

1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。 2.下载jar包 http://xiazai.jb51.net/201707/yuanma/lib_jb51.rar 提供了除JSONObject的jar之外依赖的其他6个jar包&#xff0c;一共7个jar文件 说明&#xff1a;因为工作…

JSONObject使用方法

1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。 2.下载jar包 http://files.cnblogs.com/java-pan/lib.rar 提供了除JSONObject的jar之外依赖的其他6个jar包&#xff0c;一共7个jar文件 说明&#xff1a;因为工作中项目…

JSONObject类

&#xff08;1&#xff09;是什么&#xff1f; 阿里巴巴提供的一个json快速转换工具类&#xff0c;实现了Map接口&#xff0c;通过Key Value形式存储数据&#xff0c;初始化大小为16&#xff0c;有参构造方法需要传入一个Map。 项目中实际用途&#xff1a; 用于Json转具体的Ob…

JSON, JSONObject, JsonObject

JSON是一个抽象类 JSONObject是一个继承自JSON的类 JSON,JSONObject 和 JsonObject 1. JAR 包不同&#xff0c;对于可以调用的内置方法函数也不同 JSONObject属于 org.json.JSONObject包&#xff0c; JsonObject 属于 com.google.gson.JsonObject包 2. 存储方式不同 JS…

JSONObject

JSONObject JSONObject 介绍 // JSONObject 是一个类 JSONObject jsonObject = new JSONObject(); // JSONObject 只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。 // JSONObject可以很方便的转换成字符串,也…

js构造函数详解

典型的面向对象编程语言&#xff08;比如C和Java&#xff09;&#xff0c;存在“类”&#xff08;class&#xff09;这个概念。所谓“类”就是对象的模板&#xff0c;对象就是“类”的实例。但是&#xff0c;在JavaScript语言的对象体系&#xff0c;不是基于“类”的&#xff0…

JavaScript构造函数

什么是构造函数 构造函数&#xff08;Constructor&#xff09;的创建方式和普通函数一样。但通常首字母进行大写&#xff0c;用于和普通函数区分。 但是当一个函数创建好以后&#xff0c;我们并不知道它是不是构造函数&#xff08;即使函数名的首字母为大写&#xff09;。只有…

C#构造函数

在C#中&#xff0c;构造函数就是与类具有相同名称的成员函数&#xff0c;通常使用类中的构造函数来初始化类的成员属性。C#中的构造函数有三种&#xff1a; 第一种&#xff1a;实例构造函数。 当使用new关键字创建类的对象时&#xff0c;可以使用实例构造函数来初始化和创建类…

构造函数与拷贝构造函数

拷贝构造函数和构造函数不能分开说&#xff0c;他们都是初始化对象的一种方法。但是我们这里用构造函数辅助说明拷贝构造函数&#xff0c;主要说说拷贝构造函数的声明&#xff0c;用途和使用注意事项。 众所周知&#xff0c;构造函数是一个初始化类对象的函数&#xff0c;即使不…

C# 静态构造函数

目录 写在前面语法格式用法与特性主要作用语法特性 关于泛型的测试测试代码运行结果 写在前面 今天在创建WPF自定义控件时&#xff0c;在模板代码中看到了静态构造函数这种写法&#xff0c;说来惭愧&#xff0c;以前在Java用过这种语法&#xff0c;心知C#也应该会有的&#xf…

构造函数详解

构造函数详解 类的6个默认的成员函数 构造函数的概念&#xff1a; 构造函数是一个特殊的成员函数&#xff0c;名字与类名相同&#xff0c;创建类类型对象时由编译器自动调用&#xff0c;保证每个数据成员都有一个合适的初始值&#xff0c;并且在对象的生命周期内只调用一次。…

C++中的指针类型与构造函数,析构函数

1. 指针类型的作用 1.1 指针取出字节 任何类型的指针占用的空间大小都是相同的 &#xff08;32位CPU是4字节&#xff1b;64位CPU是8字节&#xff09; 既然任何类型的指针占用的空间大小都是相同的&#xff0c;为什么指针还需要类型呢&#xff1f; 指针只是指向了一个内存地址…

c++拷贝构造函数

一. 什么是拷贝构造函数 首先对于普通类型的对象来说&#xff0c;它们之间的复制是很简单的&#xff0c;例如&#xff1a; int a 100; int b a; 而类对象与普通对象不同&#xff0c;类对象内部结构一般较为复杂&#xff0c;存在各种成员变量。 下面看一个类对象拷贝的简单…

C++构造函数

文章目录 1 构造函数的定义及特征2 默认构造函数2.1 合成的默认构造函数2.1.1 默认初始化2.1.2 合成的默认构造函数初始化类成员变量的规则2.1.3 有些场合不能使用合成的默认构造函数 2.2 全缺省的默认构造函数&#xff08;参数都为默认实参的构造函数&#xff09; 3 构造函数初…

C++ 构造函数详解

目录 0. 什么是构造函数 1. 默认构造函数 2. 一般构造函数 3. 拷贝构造函数 4. 转换构造函数 5. 移动构造函数 0. 什么是构造函数 在定义类的成员函数的时候&#xff0c;一般的成员函数与普通的全局函数没有太大的区别&#xff0c;在定义函数的时候都需要说明要返回的类…

【C++要笑着学】类的默认成员函数详解 | 构造函数 | 析构函数 | 构造拷贝函数

&#x1f525; &#x1f525; &#x1f525; &#x1f525; &#x1f525; 火速猛戳订阅 &#x1f449; 《C要笑着学》 &#x1f448; 趣味教学博客 &#x1f525; &#x1f525; &#x1f525; &#x1f525; &#x1f525; [ 本篇博客热榜最高排名&#xff1a;7 ] 写在前…

JSF 文档参考

转自&#xff1a;http://blog.csdn.net/ontheway20/article/details/38532241 A4J 用户指南 目录 1. 介绍 2. 开始使用Ajax4jsf 环境需求 下载Ajax4jsf 安装 简单的 AJAX Echo 项目 JSP 页面 数据 Bean faces-config.xml Web.xml 部署 3. Ajax4jsf 框架的基本概念 介绍 结构概…

IDEA 2020.2 部署JSF项目

目录 一、用Glassfish部署JSF项目 1、下载glassfish 2、配置glassfish环境变量 3、修改jdk环境变量 4、测试glassfish是否可以正常启动 5、在IDEA中创建一个JSF项目 6.问题&#xff1a;部分标签元素无法显示 二、用tomcat部署JSF项目 1、新建项目或者模块&#xff0c;…

JSF教程(1)——简介 + HelloWorld

在写第一个HelloWorld之前先来宏观的了解一下JSF&#xff0c;也许你之前使用过Struts&#xff08;1或者2&#xff09;&#xff0c;SpringMVC&#xff0c;甚至于直接采用JSPServelet开发过web层。JSF与这些最大的不同是JSF是基于一种以组件为中心的用户界面&#xff08;UI&#…