背景

之前一直在弄一个Java爬虫,将爬取的信息保存到了数据库中。但这毕竟是一个课程设计,在设计前端GUI,展示数据的时候最开始是直接通过select语句从数据库中查找的,但我担心交给老师后,老师还要配置JDBC的参数创建数据库插入表等一些繁琐操作,便想要保存到本地。昨晚看到同学从数据库中导出一个json文件,从json文件中读取信息,看过后觉得这不失为一个好办法,于是学习了一下,这里整理整理。

当然,后来我学到了一个叫derby的本地数据库使用derby比起这拐弯抹角的方法好点,感兴趣的可以移步到这篇文章Derby数据库的使用

开发环境

1 JDK1.8

2 IntelliJ IDEA

3 IDEA自带的Maven

json文件

{
"RECORDS": [
{
"movieId": "1",
"name": "肖申克的救赎 The Shawshank Redemption",
"director": "弗兰克·德拉邦特",
"scenarist": "弗兰克·德拉邦特 / 斯蒂芬·金",
"actors": "蒂姆·罗宾斯 / 摩根·弗里曼 / 鲍勃·冈顿 / 威廉姆·赛德勒 / 克兰西·布朗 / 吉尔·贝罗斯 / 马克·罗斯顿 / 詹姆斯·惠特摩 / 杰弗里·德曼 / 拉里·布兰登伯格 / 尼尔·吉恩托利 / 布赖恩·利比 / 大卫·普罗瓦尔 / 约瑟夫·劳格诺 / 祖德·塞克利拉 / 保罗·麦克兰尼 / 芮妮·布莱恩 / 阿方索·弗里曼 / V·J·福斯特 / 弗兰克·梅德拉诺 / 马克·迈尔斯 / 尼尔·萨默斯 / 耐德·巴拉米 / 布赖恩·戴拉特 / 唐·麦克马纳斯",
"type": "剧情 犯罪",
"ratingNum": "9.7",
"tags": "经典 励志 信念 自由 人性 人生 美国 剧情"
},
{
"movieId": "2",
"name": "霸王别姬",
"director": "陈凯歌",
"scenarist": "芦苇 / 李碧华",
"actors": "张国荣 / 张丰毅 / 巩俐 / 葛优 / 英达 / 蒋雯丽 / 吴大维 / 吕齐 / 雷汉 / 尹治 / 马明威 / 费振翔 / 智一桐 / 李春 / 赵海龙 / 李丹 / 童弟 / 沈慧芬 / 黄斐",
"type": "剧情 爱情 同性",
"ratingNum": "9.6",
"tags": "经典 人性 文艺 爱情 人生 同志 剧情 文革"
},
{
"movieId": "3",
"name": "阿甘正传 Forrest Gump",
"director": "罗伯特·泽米吉斯",
"scenarist": "艾瑞克·罗斯 / 温斯顿·格鲁姆",
"actors": "汤姆·汉克斯 / 罗宾·怀特 / 加里·西尼斯 / 麦凯尔泰·威廉逊 / 莎莉·菲尔德 / 海利·乔·奥斯蒙 / 迈克尔·康纳·亨弗里斯 / 哈罗德·G·赫瑟姆 / 山姆·安德森 / 伊俄涅·M·特雷奇 / 彼得·道博森 / 希芳·法隆 / 伊丽莎白·汉克斯 / 汉娜·豪尔 / 克里斯托弗·琼斯 / 罗布·兰德里 / 杰森·麦克奎尔 / 桑尼·施罗耶 / 艾德·戴维斯 / 丹尼尔C.斯瑞派克 / 大卫·布里斯宾 / 德博拉·麦克蒂尔 / 艾尔·哈林顿 / 阿非莫·奥米拉 / 约翰·沃德斯塔德 / 迈克尔·伯吉斯 / 埃里克·安德伍德 / 拜伦·明斯 / 斯蒂芬·布吉格沃特 / 约翰·威廉·高尔特 / 希拉里·沙普兰 / 伊莎贝尔·罗斯 / 理查德·达历山德罗 / 迪克·史迪威 / 迈克尔-杰斯 / 杰弗里·布莱克 / 瓦妮莎·罗斯 / 迪克·卡维特 / 马拉·苏查雷特扎 / 乔·阿拉斯奇 / W·本森·泰瑞",
"type": "剧情 爱情",
"ratingNum": "9.5",
"tags": "励志 经典 人生 美国 成长 信念 剧情 人性"
}
]
}

 

注意这里是将json文件放到resources文件下

pom依赖

 <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>

读取JSON工具类

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import java.io.*; public class JsonTest { //读取json文件
public static String readJsonFile(String fileName) {
String jsonStr = "";
try {
File jsonFile = new File(fileName);
FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args) {
String path = JsonTest.class.getClassLoader().getResource("Movie.json").getPath();
String s = readJsonFile(path);
JSONObject jobj = JSON.parseObject(s);
JSONArray movies = jobj.getJSONArray("RECORDS");//构建JSONArray数组
for (int i = 0 ; i < movies.size();i++){
JSONObject key = (JSONObject)movies.get(i);
String name = (String)key.get("name");
String director = (String)key.get("director");
String scenarist=((String)key.get("scenarist"));
String actors=((String)key.get("actors"));
String type=((String)key.get("type"));
String ratingNum=((String)key.get("ratingNum"));
String tags=((String)key.get("tags"));
System.out.println(name);
System.out.println(director);
System.out.println(scenarist);
System.out.println(actors);
System.out.println(type);
System.out.println(director);
System.out.println(ratingNum);
System.out.println(tags);
}
}
}

Java读取本地json文件的更多相关文章

  1. 读取本地json文件,并转换为dictionary

    // 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...

  2. jQuery ajax读取本地json文件

    jQuery ajax读取本地json文件 json文件 { "first":[ {"name":"张三","sex": ...

  3. JavaScript读取本地json文件

    JavaScript读取本地json文件 今天调试了一上午,通过jQuery读取本地json文件总是失败,始终找不出原因,各种方法都试了 开始总以为是不是json格式的问题.高了半天不行 后来读了一个 ...

  4. 读取本地json文件,转出为指定格式json 使用Base64进行string的加密和解密

    读取本地json文件,转出为指定格式json   引用添加Json.Net 引用命名空间 using Newtonsoft.Json //读取自定目录下的json文件StreamReader sr = ...

  5. android 读取本地json文件 解决显示乱码显示

    1.读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context,  String fileName){         ...

  6. JAVA读取本地html文件里的html文本

    /** * 读取本地html文件里的html代码 * @param file File file=new File("文件的绝对路径") * @return */ public s ...

  7. 读取本地Json文件

    //读取Json文件  地区 //将文件拖到本地  获取json数据 //获取json文件路径 NSString *pathArea=[[NSBundle mainBundle] pathForRes ...

  8. java读取本地json数组并解析

    1.本地json位置 2,json数据 {"garbages":[{"id":"/m/011k07","ename":& ...

  9. 读取本地json文件,转出为指定格式json

    引用添加Json.Net 引用命名空间 using Newtonsoft.Json //读取自定目录下的json文件 StreamReader sr = new StreamReader(@" ...

随机推荐

  1. 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

    1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...

  2. Spring Quartz定时任务设置

    这里主要记录一下定时任务的配置,偏向于记录型的一个教程,这里不阐述Quartz的原理. 首先,在Spring配置文件里配置一个自己写好的一个包含执行任务方法的一个类. <bean id=&quo ...

  3. nmon脚本——对Linux服务器的监控

    继服务器被挖之后,我又开拓了另一个监控工具----nmon! Nmon可以很轻松的监控系统的CPU.内存.网络.硬盘.文件系统.NFS.高耗进程.资源和IBM Power系统的微分区的信息,还有专属的 ...

  4. 本土化App名稱和icon

    本土化app名稱這個容易 第一步配置工程需要本土化的語言. 第二步,新建本土化文件,文件名稱是有要求的,文件名字命名为InfoPlist,且必须是这个名字.這樣系統會自動去讀取該文件中的內容 對新建的 ...

  5. Java修炼——面向对象_抽象类和抽象方法

    抽象类和抽象方法 什么是抽象类? 使用 abstract 修饰的类称为抽象类 public abstract class Person { } 抽象类的特征 1) 抽象类不可以创建对象 2) 抽象类可 ...

  6. 关于maven-assembly-plugin插件打包,有部分无法打包的情况解决方法

    今天在使用maven-assembly-plugin 对生产者进行打包,然后在linux中发布时.将包打包之后,发现mybtis的xml无法识别,然后查看原因说是没有这个包,我当时就纳闷了,都是基操( ...

  7. 2017 CCPC杭州 题解

    2017CCPC杭州题目PDF Problem A. Super-palindrome 题解: 给你一个字符串,每一步可以将一个字符替换为另一个字符,问你最少多少步可以使得,该字符串任意奇数子串为回文 ...

  8. 小程序 - 解决IOS端使用css滤镜渲染出现异常

    在页面渲染时,GPU默认不会开启.当css样式中出现某些规则时,就会开启GPU加速,让动画运行的更加流畅,最显著的象征就是元素的3D变换. 这些就是我们通常所说的css硬件加速,但我们有时候并不需要用 ...

  9. Java并发编程系列-(4) 显式锁与AQS

    4 显示锁和AQS 4.1 Lock接口 核心方法 Java在java.util.concurrent.locks包中提供了一系列的显示锁类,其中最基础的就是Lock接口,该接口提供了几个常见的锁相关 ...

  10. ARTS-S shell脚本实现循环

    #!/bin/bash i=0 while [ "$i" != "100" ] && [ "$RESP" != " ...