Eclipse创建JSON文件及其他操作
目录
一、创建:
二、格式化:
三、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文件及其他操作相关推荐
- python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
一.创建excel代码 备注:封装好了(可直接调用) """ -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :J ...
- Eclipse创建类文件时类的名字出错,改名字的方法
Eclipse创建类文件时类的名字出错,如果直接在代码中改类名,保存会报错. 比如改Students. 正确方法是选中类文件,右击,Refacter→Rename修改. 修改完后,finish完成.
- 【使用教程】VSCode创建json文件
相关教程: 基于 VS Code + MinGW-w64 的C语言/C++简单环境配置,专致小白 VS Code之C/C++程序的调试(Debug)功能简介 VSCode运行C++的一些使用注意 一. ...
- eclipse 创建java文件_如何在eclipse创建Java类文件呢?
现在,很多读者都会对Eclipse工具已经有大体的认识,本次教程将会为大家介绍如何使用Eclipse完成Hello,java程序的频讲解,那么.在Eclipsea中编写java程序,必须先创建项目,那 ...
- 解决eclipse创建jsp文件后的报错
目录 创建jsp文件后出现一下报错: 解决步骤有两种: 第一种: 图片操作步骤: 第二种: 创建jsp文件后出现一下报错: 解决步骤有两种: 第一种: 1.找到新建页面(报错)所在的工程名字,然后左键 ...
- Qt关闭程序的时候创建json文件,再次启动时重新加载到界面上
提要 当程序关闭后再次打开程序需要加载上一次的按钮名称设置. 思路 关闭程序的时候保存此刻界面按钮的文本,正常情况下只需在程序退出时调用的析构函数的内部实现,将界面所有的按钮文本生成一个文件,在程序下 ...
- JSON文件的读取操作详解
python读取json字符串 python操作json文件 下面有一段json形式的字符串,它是str类型,通过python转化成可操作的数据结构 import json str='''[{&quo ...
- Android Studio 创建.json 文件,个人调取json文件代码。
我们一般用大json是写软件时通过异步线程获取部分数据: 一.在我们的软件中打开project排版: 二.找到我们的main文件下,new一个Folder➡Assets Folder: 三.然后会生成 ...
- 接口自动化-用Jayway JsonPath对json文件进行读写操作,完成自定义传参
在做接口自动化测试时,我们经常会准备好一份json文件模板,写入默认值,作为接口请求body的备用:有时候我们需要对传入的值进行重新定义,那么除了修改模板json文件,还可以在执行用例时动态传入参数对 ...
- 一文综述python读写csv xml json文件各种骚操作
Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言.这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略.他们 ...
最新文章
- css中的垂直居中方法
- zoj 2972 Hurdles of 110m (DP)
- 【pytorch】torch.nn.GroupNorm的使用
- 用C语言解“爬动的蠕虫”题
- linux make 命令行 定义宏(-D)传递给C源代码 简介
- python的函数的定义与调用
- 【Silverlight5矢量打印】如何用C#代码检测打印机和驱动是否支持PostScript
- 小程序 仿麦当劳_手机上的麦当劳和星巴克:为什么现在首先使用移动应用程序...
- 计算机管理 没有适当的权限,提示没有合适的权限访问怎么办
- MongoDB在单机上搭建分片副本集群(windows)
- mysql如何设置数据库内存溢出_MySQL数据库之关于MySQL的整型数据的内存溢出问题的应对方法...
- 厦门大学仪器仪表工程专业考研上岸经验分享
- Ubuntu 19.04 缺少libpng12.so.0
- 使用苹果账号登录你的应用
- HTML中这是一个一级标题,html如何设置一级标题背景
- 极客时间左耳听风-高效学习
- 关于C语言中的宏的一点点讨论
- 4G5G相关缩略词中文及功能简述
- java 线程耗尽_关于线程耗尽导致请求超时系统假死的思考
- ftp - Internet 文件传输程序 (file transfer program)
热门文章
- linux环境编程apue,《UNIX环境高级编程》中apue.h的问题
- Ipmonitor9迁移安装后认证不可用的问题
- 计算机报名照片在线修图,网上报名照片处理工具
- Ubuntu常用软件安装
- 网络安全术语基础知识
- 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | AVC 序列头格式解析 )
- 【面朝大厂】万字+图解 Redis,面试不用愁了!
- 启动U盘更换背景图片和图标的方法
- 2021SC@SDUSC Zxing开源代码(十六)PDF417二维码(二)
- 基于python的表情识别_python表情识别