目录

一、创建:

二、格式化:

三、JSON与Javascript:​

四、JSON与字符串相互转换:

1.字符串转JSON对象:JSON.parse()

2.JSON对象转字符串:JSON.stringify()

五、JSON与Java交互:

六、FastJson序列化(单个对象)与Json注解:

1.序列化:JSON.toJSONString()

2.JSON注解@JSONField的使用

3.反序列化:JSON.parseObject(,)

六、JSON序列化、反序列化(集合):

1.序列化:JSON.toJSONString()

2.反序列化:JSON.parseArray(,)


一、创建:

右键单击项目的WebContent——new——选择File——写文件名时,后缀为".json"。如下图所示:

二、格式化:

选中JSON文件的内容——点击Souce——Format(Ctrl+Shift+F)。

原来:

格式化后:

三、JSON与Javascript:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">var json=[{"name": "Mary","sex": 01,"job": "teacher"},{"name": "Jhon","sex": 00,"job": "manager","customers": [{"cname": "Frank"},{"cname": "Li"},{"cname": "Chen"}]}];console.log(json);   //浏览器控制台调试for(var i=0;i<json.length;i++){  var emp=json[i];document.write("<h1>");document.write(emp.name);document.write(","+emp.sex);document.write(","+emp.job);document.write("</h1>");if(emp.customers !=null){document.write("<h2>----");for(var j=0;j<emp.customers.length;j++){   //注意var customer=emp.customers[j];document.write(customer.cname+",");}document.write("</h2>");}}
</script>
</head>
<body></body>
</html>

四、JSON与字符串相互转换:

JSON对象是浏览器内置对象,但IE8以下的版本不支持。

1.字符串转JSON对象:JSON.parse()

发现个小问题:(ˉ▽ˉ;)...生成html文件时,选File生成的页面不会有结构。选HTML File生成的html文件才会有结构。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>字符串转JSON</title><script type="text/javascript">var str="{\"class_name\":\"五年级三班\" }";//直接加""会与字符串冲突,在双引号前加\进行原义输出var json=JSON.parse(str);//JSON是内置对象console.log(json);console.log(str);document.write("班级:"+json.class_name);</script>
</head>
<body></body>
</html>

上面Object表示是一个对象,可以直接使用。而下面只是一个JSON样式的字符串,不能直接访问。

但注意原始字符串必须是JSON样式才能转换!

2.JSON对象转字符串:JSON.stringify()

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSON转字符串</title>
<script type="text/javascript">var json={"class_name":"五年级三班"};var str=JSON.stringify(json);console.info(json); //打印输出console.info(str);var json2={};   //JSON对象的另一种初始化方式json2.class_name="五年级四班";json2.floor="四楼";json2.teacher="龚老师";console.info(json2);
</script>
</head>
<body></body>
</html>

五、JSON与Java交互:

JSON逐渐替代xml成为保存对象、数据传输的一个首选。

JSON工具包:把Java对象转化为JSON 或 把JSON转化为Java对象的第三方组件。比如有FastJson(阿里巴巴开发)、Jackson(国外老牌)、Gson(谷歌开发)、Json-lib等。

FastJson是阿里巴巴著名的JSON序列化与反序列化工具包。其在国内有大量 使用者,优点有:API简单、效率高等。
获取见该教程:https://blog.csdn.net/qq_43542011/article/details/118281143

六、FastJson序列化(单个对象)与Json注解:

1.序列化:JSON.toJSONString()


①Employee.java

package com.immoc.json;import java.util.Date;public class Employee {private Integer eid;private String ename;private String job;private Date date;  //入职时间private Float salary;private String cname; //部门名称public Integer getEid() {return eid;}public void setEid(Integer eid) {this.eid = eid;}public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public Float getSalary() {return salary;}public void setSalary(Float salary) {this.salary = salary;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}}

②FastJsonSample1.java

package com.immoc.json;import java.util.Calendar;import com.alibaba.fastjson.JSON;public class FastJsonSample1 {public static void main(String[] args) {Employee employee=new Employee();employee.setEid(01001);employee.setEname("萧瑾瑜");employee.setJob("项目经理");employee.setSalary(20000f);employee.setCname("开发部");Calendar c=Calendar.getInstance();  //用日历类对时间初始化c.set(2021, 5, 27, 0, 0, 0);  //月份是从0开始的,这里表示6月employee.setDate(c.getTime());  //获取日期对象// 接下来把employee转化成JSON对象:FastJson中提供了JSON对象来完成对象与JSON字符串的互相转化String json=JSON.toJSONString(employee);  //把employee对象中所有不为空的属性都JSON序列化System.out.println(json);}}

2.JSON注解@JSONField的使用

①结果图中,“date”后面的一串数字是时间戳代表了从1970年到现在的毫秒数,需要以可读方式转换,借助JSON的注解进行格式化,修改如下:

结果如下:

②可以对键进行格式化:

结果:

③如果不对其中一项序列化:

结果:工资这项已消失不见

3.反序列化:JSON.parseObject(,)

六、JSON序列化、反序列化(集合):

1.序列化:JSON.toJSONString()

如图,在包中新增名为FastJsonSample2的类

package com.immoc.json;import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;public class FastJsonSample2 {public static void main(String[] args) {List empList=new ArrayList();for (int i = 1; i <=100; i++) {  //模拟100个员工Employee employee=new Employee();employee.setEid(0001+i);  //加i使员工编号不重复employee.setEname("员工"+i);empList.add(employee);}String json=JSON.toJSONString(empList);  //还是用toJSONString()System.out.println(json);}}

其中,当FastJSON的属性值为null,会自动忽略输出。

2.反序列化:JSON.parseArray(,)

在FastJsonSample2.java中增加如下的代码:

 List<Employee> emps=JSON.parseArray(json,Employee.class);  //反序列化:原始的JSON数组对象转化出一个个的Employee对象for(Employee e:emps) {System.out.println(e.getEid()+":"+e.getEname());}

Eclipse创建JSON文件及其他操作相关推荐

  1. python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作

    一.创建excel代码 备注:封装好了(可直接调用) """ -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :J ...

  2. Eclipse创建类文件时类的名字出错,改名字的方法

    Eclipse创建类文件时类的名字出错,如果直接在代码中改类名,保存会报错. 比如改Students. 正确方法是选中类文件,右击,Refacter→Rename修改. 修改完后,finish完成.

  3. 【使用教程】VSCode创建json文件

    相关教程: 基于 VS Code + MinGW-w64 的C语言/C++简单环境配置,专致小白 VS Code之C/C++程序的调试(Debug)功能简介 VSCode运行C++的一些使用注意 一. ...

  4. eclipse 创建java文件_如何在eclipse创建Java类文件呢?

    现在,很多读者都会对Eclipse工具已经有大体的认识,本次教程将会为大家介绍如何使用Eclipse完成Hello,java程序的频讲解,那么.在Eclipsea中编写java程序,必须先创建项目,那 ...

  5. 解决eclipse创建jsp文件后的报错

    目录 创建jsp文件后出现一下报错: 解决步骤有两种: 第一种: 图片操作步骤: 第二种: 创建jsp文件后出现一下报错: 解决步骤有两种: 第一种: 1.找到新建页面(报错)所在的工程名字,然后左键 ...

  6. Qt关闭程序的时候创建json文件,再次启动时重新加载到界面上

    提要 当程序关闭后再次打开程序需要加载上一次的按钮名称设置. 思路 关闭程序的时候保存此刻界面按钮的文本,正常情况下只需在程序退出时调用的析构函数的内部实现,将界面所有的按钮文本生成一个文件,在程序下 ...

  7. JSON文件的读取操作详解

    python读取json字符串 python操作json文件 下面有一段json形式的字符串,它是str类型,通过python转化成可操作的数据结构 import json str='''[{&quo ...

  8. Android Studio 创建.json 文件,个人调取json文件代码。

    我们一般用大json是写软件时通过异步线程获取部分数据: 一.在我们的软件中打开project排版: 二.找到我们的main文件下,new一个Folder➡Assets Folder: 三.然后会生成 ...

  9. 接口自动化-用Jayway JsonPath对json文件进行读写操作,完成自定义传参

    在做接口自动化测试时,我们经常会准备好一份json文件模板,写入默认值,作为接口请求body的备用:有时候我们需要对传入的值进行重新定义,那么除了修改模板json文件,还可以在执行用例时动态传入参数对 ...

  10. 一文综述python读写csv xml json文件各种骚操作

    Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言.这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略.他们 ...

最新文章

  1. css中的垂直居中方法
  2. zoj 2972 Hurdles of 110m (DP)
  3. 【pytorch】torch.nn.GroupNorm的使用
  4. 用C语言解“爬动的蠕虫”题
  5. linux make 命令行 定义宏(-D)传递给C源代码 简介
  6. python的函数的定义与调用
  7. 【Silverlight5矢量打印】如何用C#代码检测打印机和驱动是否支持PostScript
  8. 小程序 仿麦当劳_手机上的麦当劳和星巴克:为什么现在首先使用移动应用程序...
  9. 计算机管理 没有适当的权限,提示没有合适的权限访问怎么办
  10. MongoDB在单机上搭建分片副本集群(windows)
  11. mysql如何设置数据库内存溢出_MySQL数据库之关于MySQL的整型数据的内存溢出问题的应对方法...
  12. 厦门大学仪器仪表工程专业考研上岸经验分享
  13. Ubuntu 19.04 缺少libpng12.so.0
  14. 使用苹果账号登录你的应用
  15. HTML中这是一个一级标题,html如何设置一级标题背景
  16. 极客时间左耳听风-高效学习
  17. 关于C语言中的宏的一点点讨论
  18. 4G5G相关缩略词中文及功能简述
  19. java 线程耗尽_关于线程耗尽导致请求超时系统假死的思考
  20. ftp - Internet 文件传输程序 (file transfer program)

热门文章

  1. linux环境编程apue,《UNIX环境高级编程》中apue.h的问题
  2. Ipmonitor9迁移安装后认证不可用的问题
  3. 计算机报名照片在线修图,网上报名照片处理工具
  4. Ubuntu常用软件安装
  5. 网络安全术语基础知识
  6. 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | AVC 序列头格式解析 )
  7. 【面朝大厂】万字+图解 Redis,面试不用愁了!
  8. 启动U盘更换背景图片和图标的方法
  9. 2021SC@SDUSC Zxing开源代码(十六)PDF417二维码(二)
  10. 基于python的表情识别_python表情识别