目录

一、将数据生成json文件

二、读取json文件中的数据

三、方法测试

四、其他附件

1、User实体类

2、import


一、将数据生成json文件

方法

    /*** 生成.json格式文件*/public static boolean createJsonFile(String jsonString, String filePath, String fileName) {// 标记文件生成是否成功boolean flag = true;// 拼接文件完整路径String fullPath = filePath + File.separator + fileName + ".json";// 生成json格式文件try {// 保证创建一个新文件File file = new File(fullPath);if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录file.getParentFile().mkdirs();}if (file.exists()) { // 如果已存在,删除旧文件file.delete();}file.createNewFile();if(jsonString.indexOf("'")!=-1){//将单引号转义一下,因为JSON串中的字符串类型可以单引号引起来的jsonString = jsonString.replaceAll("'", "\\'");}if(jsonString.indexOf("\"")!=-1){//将双引号转义一下,因为JSON串中的字符串类型可以单引号引起来的jsonString = jsonString.replaceAll("\"", "\\\"");}if(jsonString.indexOf("\r\n")!=-1){//将回车换行转换一下,因为JSON串中字符串不能出现显式的回车换行jsonString = jsonString.replaceAll("\r\n", "\\u000d\\u000a");}if(jsonString.indexOf("\n")!=-1){//将换行转换一下,因为JSON串中字符串不能出现显式的换行jsonString = jsonString.replaceAll("\n", "\\u000a");}// 格式化json字符串jsonString = formatJson(jsonString);// 将格式化后的字符串写入文件Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");write.write(jsonString);write.flush();write.close();} catch (Exception e) {flag = false;e.printStackTrace();}// 返回是否成功的标记return flag;}/*** 单位缩进字符串。*/private static String SPACE = "   ";/*** 返回格式化JSON字符串。** @param json 未格式化的JSON字符串。* @return 格式化的JSON字符串。*/public static String formatJson(String json) {StringBuffer result = new StringBuffer();int length = json.length();int number = 0;char key = 0;// 遍历输入字符串。for (int i = 0; i < length; i++) {// 1、获取当前字符。key = json.charAt(i);// 2、如果当前字符是前方括号、前花括号做如下处理:if ((key == '[') || (key == '{')) {// (1)如果前面还有字符,并且字符为“:”,打印:换行和缩进字符字符串。if ((i - 1 > 0) && (json.charAt(i - 1) == ':')) {result.append('\n');result.append(indent(number));}// (2)打印:当前字符。result.append(key);// (3)前方括号、前花括号,的后面必须换行。打印:换行。result.append('\n');// (4)每出现一次前方括号、前花括号;缩进次数增加一次。打印:新行缩进。number++;result.append(indent(number));// (5)进行下一次循环。continue;}// 3、如果当前字符是后方括号、后花括号做如下处理:if ((key == ']') || (key == '}')) {// (1)后方括号、后花括号,的前面必须换行。打印:换行。result.append('\n');// (2)每出现一次后方括号、后花括号;缩进次数减少一次。打印:缩进。number--;result.append(indent(number));// (3)打印:当前字符。result.append(key);// (4)如果当前字符后面还有字符,并且字符不为“,”,打印:换行。if (((i + 1) < length) && (json.charAt(i + 1) != ',')) {result.append('\n');}// (5)继续下一次循环。continue;}// 4、如果当前字符是逗号。逗号后面换行,并缩进,不改变缩进次数。/*if ((key == ',')) {result.append(key);result.append('\n');result.append(indent(number));continue;}*/// 5、打印:当前字符。result.append(key);}return result.toString();}/*** 返回指定次数的缩进字符串。每一次缩进三个空格,即SPACE。** @param number 缩进次数。* @return 指定缩进次数的字符串。*/private static String indent(int number) {StringBuffer result = new StringBuffer();for (int i = 0; i < number; i++) {result.append(SPACE);}return result.toString();}

二、读取json文件中的数据

方法

    //----------------读取json文件/*** 读取文件数据加入到map缓存中* @throws java.io.IOException* 依赖的jar包* <dependency>*   <groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version>* </dependency>*/public static void readJsonData() throws IOException {File file = new File("C:\\Users\\admin\\Desktop\\user.json");String jsonString = FileUtils.readFileToString(file);List<User> userList = JSON.parseArray(jsonString, User.class);for (User user : userList) {System.out.println(user.getName());}System.out.println(JSON.toJSONString(userList,true));}

三、方法测试

    public static void main(String[] args){//1、生成json文件--测试List<Object> agencyList = new ArrayList<Object>();Map<String, Object> agencyMap = new HashMap<>();agencyMap.put("name","张三");agencyMap.put("address", "北京市");agencyMap.put("companyName", "中国");agencyMap.put("logoImageId", "668");agencyMap.put("auctionAddress", "未知");agencyMap.put("logoImage", "你猜");agencyList.add(agencyMap);//将集合数据转换为json字符串(当然map集合亦可以):JSONArray jsonArray = JSONArray.fromObject(agencyList);String jsonString1 = jsonArray.toString();createJsonFile(jsonString1, "C:\\Users\\admin\\Desktop\\", "user");//项目demoList<User> userList = new ArrayList<>();Iterable<User> all = userRepository.findAll();for (User user: all) {userList .add(user);}//将集合数据转换为json字符串(当然map集合亦可以):JSONArray jsonArray = JSONArray.fromObject(userList);String jsonString1 = jsonArray.toString();createJsonFile(jsonString1, "C:\\Users\\admin\\Desktop\\", "user");//2、读取json文件try {readJsonData();} catch (IOException e) {e.printStackTrace();}}

四、其他附件

1、User实体类

import lombok.Data;@Datapublic class User {private String name;private String address;private String companyName;private String logoImageId;}

2、import

import com.alibaba.fastjson.JSON;
import net.sf.json.JSONArray;
import org.apache.commons.io.FileUtils;import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

将数据写入json文件,并且读取json文件中的数据相关推荐

  1. python将数据写入excel_【Python】将数据库中的数据查询出来自动写入excel文档

    近期每天都要监控一个数据.第一个版本是这样的: 每天新增一个文档来汇总这个数据.这样搞了几天之后,过了一个周末,过来突然发现数据变多了很多,这个时候要调整策略,直接一个文档汇总出要的数据就可以了. 这 ...

  2. mysql讀取sql_MySQL数据库之python json及mysql读取json文件存sql等问题

    本文主要向大家介绍了MySQL数据库之python json及mysql读取json文件存sql等问题 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. preface: 近期帮师 ...

  3. Python 将数据写入pkl文件,读取pkl文件

    Python 将数据写入pkl文件,读取pkl文件 写入pkl文件 data = {"name": ["李明", "胡莉"]} with o ...

  4. 乐鑫esp8266学习rtos3.0笔记:esp产品 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  5. pandas读取csv文件的前几行数据(nrows参数)、pandas读取csv文件的中间几行数据(skiprows=range(a,b))

    pandas读取csv文件的前几行数据(nrows参数).pandas读取csv文件的中间几行数据(skiprows=range(a,b)) 目录 pandas读取csv文件的前几行数据.pandas ...

  6. 第四章:数据存储-csv文件处理-读取csv文件的两种方式

    直接学习:https://edu.csdn.net/course/play/24756/280718 csv文件处理-读取csv文件的两种方式: # 这种方式读取到的每一条数据是个列表,所以需要通过下 ...

  7. Spark SQL来读取现有Hive中的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等). Spark SQL的其中一个分支就是Spa ...

  8. python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)

    前面程序展示的数据都是直接通过程序给出的,但实际应用可能需要展示不同来源(比如文件.网络).不同格式(比如 csv.JSON)的数据,这些数据可能有部分是损坏的,因此程序需要对这些数据进行处理. cs ...

  9. C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件

    这一篇来写一下.shx文件的读取跟生成.测试数据下载地址为:http://download.csdn.net/detail/gis0911178/9650967 在第一篇时候有介绍. 索引文件(.sh ...

  10. matlab打开dat形式文件_matlab 读取dat文件

    matlab 读取dat文件 关注:145  答案:2  mip版 解决时间 2021-01-17 21:36 提问者壹玍徴戰何亽陪 2021-01-17 14:35 想用matlab 语句读取桌面上 ...

最新文章

  1. java数组与对象例题,Java的字符串和数组是以对象的形式出现的。()
  2. Linux下使用命令生成二维码
  3. go语言笔记——go环境变量goroot是安装了路径和gopath是三方包路径
  4. 2015-10-11 Sunday 晴 ARM学习
  5. 如何添加sersync进程监控脚本
  6. 前沪江高级架构师学习笔记分享:分布式框架设计与实现
  7. OO Design之SOLID原则
  8. java 面向对象 — 继承
  9. 使用WebRTC和WebVR进行VR视频通话
  10. python手势识别_Python|使用opencv进行简单的手势检测
  11. dnn模型 list index out of range_基于svm的财务预警模型
  12. linux java uml_简单实用UML关系图解
  13. 我如何使用React和Typescript在freeCodeCamp中构建天气应用
  14. python request对四类参数的处理_如何处理Djang中同一参数具有多个变量的request.GET...
  15. P1425 小鱼的游泳时间(python3实现)
  16. C语言实现字符串转整型
  17. 开发信模板之失联跟进样品篇
  18. SPSS 24安装教程详细步骤
  19. java程序设计概念对象先行_Java程序设计概念:对象先行(原书第8版)简介,目录书摘...
  20. Arm linux开发板移植OpenSSH

热门文章

  1. linux修改密码和宽限天数,Linux用户和组管理
  2. 锁存器原理/门电路/寄存器
  3. java/php/net/python某电影院影片管理系统设计
  4. 餐饮店实现扫码点餐、语音播报、自动打印厨房单结账单
  5. 什么是场效应管增强型
  6. banner图失真解决方案
  7. 数据库优化的四大方法
  8. Unity光照渲染设置
  9. 【python】将多个excel表合并进同一个excel中的多个sheet
  10. 特斯拉开放FSD测试版软件,马斯克:7天内驾驶记录良好的车主优先