当前位置: 首页 > java >正文

java操作JSON

一、Jackson概念

1、作用

​ 它是用来前后端的交互功能,属于SpringMVC

二、ObjectMapper

2.1、作用

​ 是用来后端接收的json数据转换成各种格式。也可以转换各种格式

2.1.1、第一步,初始化

ObjectMapper mapper = new ObjectMapper();

2.1.2、写到文件中
User user = new User("243582", "h2435823336");
//mapper.writeValue(new File("test.txt"), user); // 写到文件中
//mapper.writeValue(System.out, user); //写到控制台
2.1.3、对象转为字符串
//对象转为字符串
String json_String = mapper.writeValueAsString(user);
System.out.println("对象转为字符串:" + json_String);
2.1.4、json字符串转为对象
User jsonStr_Class = mapper.readValue(json_String, User.class);
System.out.println("json字符串转为对象:" + jsonStr_Class);
2.1.5、对象转为byte数组
byte[] class_ByteArr = mapper.writeValueAsBytes(user);
System.out.println("对象转为byte数组:" + Arrays.toString(class_ByteArr));
2.1.6、byte数组转为对象
User byteArr_Class = mapper.readValue(class_ByteArr, User.class);
System.out.println("byte数组转为对象:" + byteArr_Class);
字符串转map
ObjectMapper om = new ObjectMapper();
om.readValue(loginCheck, Map.class);

2.2、导入依赖

<!--https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl -->
<dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-core-asl</artifactId><version>1.9.13</version>
</dependency>

2.3、具体使用方法

2.3.1、HTML中

使用了JQuery方式,得到的返回值放在span标签中

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script>function submit(){var username = $("#username").val();var password = $("#password").val();var user = {username: username,password: password};$.ajax({url:"SubmitServlet",// url:"/login",data:{"user":JSON.stringify(user),"username":username,"password":password},// data:JSON.stringify(user),cache:false,type:"POST",dataType:"json",// contentType: 'application/json;charset=utf-8',success: function (resultUser){$("#span1").text(resultUser.username);$("#span2").text(resultUser.password);}})}
</script>
2.3.2、Servlet中
  1. ​ 首先测试能否到达此类,输出"成功到达后台"
  2. ​ 接着开始类型转换
  3. ​ 最后把结果对象返回到前端
@WebServlet("/SubmitServlet")
public class SubmitServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {request.setCharacterEncoding("UTF-8");response.setContentType("application/json;charset=utf-8");System.out.println("成功到达后台");//System.out.println("username: "+request.getParameter("username")+"    "+"password: "+request.getParameter("password"));String user =  request.getParameter("user");ObjectMapper mapper = new ObjectMapper();User userBean = mapper.readValue(user,User.class);System.out.println("userBean:   "+userBean);//把userBean对象返回到前端页面的成功回调函数mapper.writeValue(response.getWriter(),userBean);}
}

9UxnMae1df8IAlR

nAJGpEmZYl4MD2d

三、JSONObject

JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。

1、依赖fastjson

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version>
</dependency>

1.2、JSONObject

1.2.1、初始化

JSONObject jsonObject = new JSONObject();

实体对象 转 JSON字符串

//对象转json字符串
String strs = JSONObject.toJSONString(user);

JSON字符串 转 JSON对象

//JSOn字符串转JSON对象
JSONObject infoJson = JSONObject.parseObject(strs);//get值    //不能set值
infoJson.getString("securityName");

1.3、JSONArrays数组

JSONArray jsonArray = new JSONArray();JSONObject liJson = new JSONObject();
liJson.put("materialUniqueFieldType", "idType");
liJson.put("materialUniqueFieldValue", materialId);
liJson.put("resourceType", "document");jsonArray.add(liJson);

显示效果:

[{"materialNo": 1,"playTime": 20,"resourceValue": "Station"
}]
http://www.xdnf.cn/news/11223.html

相关文章:

  • 蠕虫病毒代码(纯属参考,请勿用于非法事件)
  • 游戏发展演变:何谓第三代网游?
  • 蜀门linux服务端架设,蜀门私服常用修改配置大全
  • 【干货】零基础30分钟让你拥有一个完整属于自己的短视频APP系统
  • 文心一言APP国区可下载!免费体验120+玩法,PPT大纲Excel公式一键生成
  • 各国搜索引擎大全
  • 使用Python截取nc文件数据保存到CSV文件
  • 忘记Gmail谷歌账号密码或者密码错误怎么办?用这种方法轻松搞定
  • 2024年Go最全PHP从基础到高级详细教程(完整版)_php高级教程(1),重要概念一网打尽
  • Linux学习记录--内核|内核模块编译
  • VMware 8安装Mac OS X 10.7 Lion
  • css3帮助文档,CSS3 最新版参考手册
  • rk3288 使用i2ctools调试pca9685
  • 基于Attention的机器翻译模型,论文笔记
  • 嵌入式开发概述
  • 【转】Skyline软件介绍
  • 【miscellaneous】IP多播技术及其编程
  • 硬件项目开发 datasheet篇
  • 一些常用软件的网络端口协议分类介绍
  • mysql5.0免安装版_MySql5.0免安装版配置
  • 万维网(www)
  • free技术详解 lock_简化概念下的 lock-free 编程
  • MSN、QQ、阿里旺旺在线客服源代码
  • Android 开发环境搭建(详细)
  • windows注册表启动项
  • 格兰杰因果关系检验_分位数(Quantile)格兰杰因果关系的一致性非参数检验
  • 游戏软件提示d3dcompiler_43.dll的五个解决方法,亲测靠谱
  • 《MAC OS X 技术内幕》读书笔记第一章:MAC OS X的起源
  • layout_marginTop,layout_marginBottom
  • 安卓刷机及刷机包制作教程