精华内容
下载资源
问答
  • Java 读取Json文件内容

    千次阅读 2021-02-12 10:51:14
    读取json文件为String类型:import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import java.io.*;/*** Json读取工具类*/public class JsonUtil {private static final Logger ...

    读取json文件为String类型:

    import org.apache.logging.log4j.LogManager;

    import org.apache.logging.log4j.Logger;

    import java.io.*;

    /**

    * Json读取工具类

    */

    public class JsonUtil {

    private static final Logger logger = LogManager.getLogger(JsonUtil.class);

    /**

    * 读取json文件

    * @param fileName json文件名

    * @return 返回json字符串

    */

    public String readJsonFile(File jsonFile) {

    String jsonStr = "";

    logger.info("————开始读取" + jsonFile.getPath() + "文件————");

    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();

    logger.info("————读取" + jsonFile.getPath() + "文件结束!————");

    return jsonStr;

    } catch (Exception e) {

    logger.info("————读取" + jsonFile.getPath() + "文件出现异常,读取失败!————");

    e.printStackTrace();

    return null;

    }

    }

    }

    将读取出来的JSON文件内容从String转为Map:

    import com.alibaba.fastjson.JSON;

    String jsonStr = jsonUtil.readJsonFile(file);

    Map jsonMap = (Map) JSON.parse(jsonStr);

    展开全文
  • java 读取json文件配置

    2021-02-13 00:22:19
    找一个工具读取json文件,网上好多,找了一个测试了下,记录下来1. 要放入读取io的依赖包commons-iocommons-io2.42. 创建一个json格式的文件放入resources下 文件内容: 3. 创建工具类JsonResourceUtilspackage com....

    找一个工具读取json文件,网上好多,找了一个测试了下,记录下来

    1.  要放入读取io的依赖包

    commons-io

    commons-io

    2.4

    2. 创建一个json格式的文件放入resources下

    81ccab1b1d9dcb80f444a9d956e33c9c.png

    文件内容:

    242860aeb456d484b54bff825bacb95e.png

    3. 创建工具类 JsonResourceUtils

    package com.***.***.util;

    import com.alibaba.fastjson.JSON;

    import com.alibaba.fastjson.JSONObject;

    import org.apache.commons.io.FileUtils;

    import org.apache.log4j.Logger;

    import java.io.File;

    import java.net.URL;

    public class JsonResourceUtils {

    private static Logger logger = Logger.getLogger(JsonResourceUtils.class);

    private JsonResourceUtils() {

    }

    //filename 为文件名字 如 “/json/app_version_info.json”

    public static JSONObject getJsonObjFromResource(String filename) {

    JSONObject json = null;

    if (!filename.contains(".json")) {

    filename += ".json";

    }

    try {

    URL url = JsonResourceUtils.class.getResource(filename);

    String path = url.getPath();

    File file = new File(path);

    if (file.exists()) {

    String content = FileUtils.readFileToString(file, "UTF-8");

    json = JSON.parseObject(content);

    } else {

    logger.info("file not exist!");

    }

    } catch (Exception e) {

    e.printStackTrace();

    logger.info("readFileToString" + e.getMessage());

    }

    return json;

    }

    }

    4.控制层读取

    @RequestMapping(value = {"/getJsonFile"}, method = {RequestMethod.POST})

    //@ResponseBody (控制层已使用@RestController)

    public Object getJsonFile(HttpServletRequest request, HttpServletResponse response){

    return JsonResourceUtils.getJsonObjFromResource("/aaa.json");

    }

    5. 运行结果

    37efcfaa6c2224b4e16409998cff5fac.png

    展开全文
  • java如何读写json文件

    2021-02-12 10:51:16
    在实际项目开发,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml、json等)也是一种...下面就json文件的读写进行进一步说明。1、...

    在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml、json等)也是一种实现方式,但是这有一个弊端,因为作为静态资源存储在站内势必就导致信息的安全性很低,所以如果采用这种方式则建议记录一些安全要求很低的配置属性,当然最好的做法就是使用redis缓存技术。下面就json文件的读写进行进一步说明。

    1、json通用文件读取方法,这个方法会返回map对象:

    /*** json读取

    *

    *@paramrequest

    *@parampath

    *@return

    */

    public static ListJsonRead(HttpServletRequest request, String path) {

    List maps = null;

    String dir=request.getSession().getServletContext().getRealPath(path);

    System.out.println(path);

    System.out.println(dir);if (dir == null) {

    System.out.println("找不到数据");return null;

    }try{

    File file= newFile(dir);if (!file.exists()) {

    file.createNewFile();

    }

    String str= FileUtils.readFileToString(file, "UTF-8");

    maps=(List) JSONArray.fromObject(str);

    }catch(IOException e) {

    e.printStackTrace();

    }returnmaps;

    };

    2、json指定文件读取方法,这个方法是针对特定的json文件,返回值也是特定的实体对象:

    首先要先定义实体类(我这里就拿项目中一个demo做示例):

    packagecom.net.entity;/*** 系统广告图片

    *@authorzhangdi

    **/

    public classSysAdverImg {private int id;//方便后期数据库拓展

    private String img11;//首页广告1

    private String img12;//首页广告2

    private String img13;//首页广告3

    private String img21;//积分广告1

    private String img22;//积分广告2

    private String img23;//积分广告3

    private String url11;//首页广告链接1

    private String url12;//首页广告链接2

    private String url13;//首页广告链接3

    private String url21;//积分广告链接1

    private String url22;//积分广告链接2

    private String url23;//积分广告链接3

    public intgetId() {returnid;

    }public void setId(intid) {this.id =id;

    }publicString getImg11() {returnimg11;

    }public voidsetImg11(String img11) {this.img11 =img11;

    }publicString getImg12() {returnimg12;

    }public voidsetImg12(String img12) {this.img12 =img12;

    }publicString getImg13() {returnimg13;

    }public voidsetImg13(String img13) {this.img13 =img13;

    }publicString getImg21() {returnimg21;

    }public voidsetImg21(String img21) {this.img21 =img21;

    }publicString getImg22() {returnimg22;

    }public voidsetImg22(String img22) {this.img22 =img22;

    }publicString getImg23() {returnimg23;

    }public voidsetImg23(String img23) {this.img23 =img23;

    }

    }

    第二步:针对这个特定实体类来写特定的json文件读取方法:

    /** 取出广告图片内容,填充对象*/

    publicSysAdverImg findSysAdverImg(String path) {

    SysAdverImg config= newSysAdverImg();

    String sets= ReadFile(path);//获得json文件的内容

    System.out.println(sets);//去掉json中的[]

    sets = sets.substring(1, sets.length() - 1);

    System.out.println(sets);

    JSONObject jo= JSONObject.fromObject(sets);//格式化成json对象

    System.out.println(jo.toString());

    config.setId(Integer.valueOf(jo.getString("id")));

    config.setImg11(jo.getString("img11"));

    config.setImg12(jo.getString("img12"));

    config.setImg13(jo.getString("img13"));

    config.setImg21(jo.getString("img21"));

    config.setImg22(jo.getString("img22"));

    config.setImg23(jo.getString("img23"));

    config.setUrl11(jo.getString("url11"));

    config.setUrl12(jo.getString("url12"));

    config.setUrl13(jo.getString("url13"));

    config.setUrl21(jo.getString("url21"));

    config.setUrl22(jo.getString("url22"));

    config.setUrl23(jo.getString("url23"));returnconfig;

    }

    这里调用的ReadFile方法如下:

    //读文件,返回字符串

    publicString ReadFile(String path) {

    File file= newFile(path);

    BufferedReader reader= null;

    String laststr= "";try{//System.out.println("以行为单位读取文件内容,一次读一整行:");

    reader = new BufferedReader(newFileReader(file));

    String tempString= null;int line = 1;//一次读入一行,直到读入null为文件结束

    while ((tempString = reader.readLine()) != null) {//显示行号

    System.out.println("line " + line + ": " +tempString);

    laststr= laststr +tempString;

    line++;

    }

    reader.close();

    }catch(IOException e) {

    e.printStackTrace();

    }finally{if (reader != null) {try{

    reader.close();

    }catch(IOException e1) {

    }

    }

    }returnlaststr;

    }

    3、特定的json文件修改(即对json文件进行写的操作)

    首先是编写文件写的通用操作方法:

    //把json格式的字符串写到文件

    public booleanwriteFile(String filePath, String sets) {

    FileWriter fw;try{

    fw= newFileWriter(filePath);

    PrintWriter out= newPrintWriter(fw);

    out.write(sets);

    out.println();

    fw.close();

    out.close();return true;

    }catch(IOException e) {

    e.printStackTrace();return false;

    }

    }

    再就特定的实体类执行写的操作(这里还是以第二步的实体类为例):

    /*** 系统后台更新广告图片

    *@paramimg

    *@paramtype

    *@paramrequest

    *@paramresq

    *@return200 更新成功

    * 501 上传图片为空

    * 502 上传类型为空

    * 503 无法读取json文件

    * 504 错误的类型

    * 505 json文件更新失败

    * 506 上传链接为空*/@RequestMapping(value="updateAdverImgConfig" ,method=RequestMethod.POST,

    produces="application/json;charset=utf-8")

    @ResponseBodypublicString updateAdverImgConfig(

    @RequestParam("img")String img,

    @RequestParam("url")String url,

    @RequestParam("type")Integer type,

    HttpServletRequest request,

    HttpServletResponse resq){if(img==null||img==""){return "501";//图片为空

    }if(type==null){return "502";//类型为空

    }if(url==null||url==""){return "506";//链接为空

    }//系统路径

    String pathRoot = request.getSession().getServletContext().getRealPath("");//网站配置路径

    String baseRoot = jsonUtil.findSysConfig(pathRoot+"/config/config.json").getBaseUrl();//读取出源文件

    SysAdverImg sai = newSysAdverImg();try{

    sai= jsonUtil.findSysAdverImg(pathRoot+"/config/adver_img.json");

    }catch(Exception e) {return "503";//无法读取源文件

    }//处理传过来的base64//这里处理传过来的广告图片base64

    if(img!=""||img!=null){//图片的存储路径

    String newImaPath = File.separator +"img"+File.separator+"imgZip" +File.separator;

    String path= newImaPath+UtilNet.getRandomNumberString(24)+".jpg";//截取字符串,将data:image/jpg;base64去掉,取剩余的字符串

    String imgType = img.substring(11, 14);if(imgType.equals("jpe")){

    img= img.substring(23);

    }else if(imgType.equals("jpg")||imgType.equals("png")){

    img= img.substring(22);

    }else if(imgType.equals("gif")){//data:image/gif;base64,R0l

    img = img.substring(22);

    }else{

    img= img.substring(22);

    }//进行解码

    ImageBase64Util.GenerateImage(img, path,request);//赋值成绝对路径

    System.out.println(path);

    path= baseRoot+path;

    System.out.println(path);//路径赋值

    switch(type) {case 0://首页广告1

    sai.setImg11(path);

    sai.setUrl11(url);break;case 1://首页广告2

    sai.setImg12(path);

    sai.setUrl12(url);break;case 2://首页广告3

    sai.setImg13(path);

    sai.setUrl13(url);break;case 3://积分广告1

    sai.setImg21(path);

    sai.setUrl21(url);break;case 4://积分广告2

    sai.setImg22(path);

    sai.setUrl22(url);break;case 5://积分广告3

    sai.setImg23(path);

    sai.setUrl23(url);break;default:return "504";

    }

    }//写入json文件中

    String config = "[{"+"\n"

    +" \"" +"id"+"\" "+":"+" \""+sai.getId()+"\","+"\n"

    +" \"" +"img11"+"\" "+":"+" \""+sai.getImg11()+"\","+"\n"

    +" \"" +"img12"+"\" "+":"+" \""+sai.getImg12()+"\","+"\n"

    +" \"" +"img13"+"\" "+":"+" \""+sai.getImg13()+"\","+"\n"

    +" \"" +"img21"+"\" "+":"+" \""+sai.getImg21()+"\","+"\n"

    +" \"" +"img22"+"\" "+":"+" \""+sai.getImg22()+"\","+"\n"

    +" \"" +"img23"+"\" "+":"+" \""+sai.getImg23()+"\","+"\n"

    +" \"" +"url11"+"\" "+":"+" \""+sai.getUrl11()+"\","+"\n"

    +" \"" +"url12"+"\" "+":"+" \""+sai.getUrl12()+"\","+"\n"

    +" \"" +"url13"+"\" "+":"+" \""+sai.getUrl13()+"\","+"\n"

    +" \"" +"url21"+"\" "+":"+" \""+sai.getUrl21()+"\","+"\n"

    +" \"" +"url22"+"\" "+":"+" \""+sai.getUrl22()+"\","+"\n"

    +" \"" +"url23"+"\" "+":"+" \""+sai.getUrl23()+"\""+"\n"

    +"}]";boolean isUpdate = jsonUtil.writeFile(pathRoot+"/config/adver_img.json", config);if(isUpdate){return "200";

    }else{return "505";

    }

    }

    }

    展开全文
  • 在开发Elasticsearch的应用过程,需要读取索引相关的JSON Settings、MAppings设置,将JSON文档存放到项目的resources 目录,然后读取并调用Elasticsearch API 执行。POM依赖com.alibabafastjson1.2.56读取JSON工具...

    在开发Elasticsearch的应用过程中,需要读取索引相关的JSON Settings、MAppings设置,将JSON文档存放到项目的resources 目录,然后读取并调用Elasticsearch API 执行。

    9e1615bf47bb1fcee6f97dc4661d9142.png

    POM依赖

    com.alibaba

    fastjson

    1.2.56

    读取JSON工具类

    package com.fanxb.esdemo.util;

    import JAVA.io.*;

    public class JsonUtil {

    /**

    * 读取json文件,返回json串

    * @param fileName

    * @return

    */

    public static String readJsonFile(String fileName) {

    String jsonStr = "";

    try {

    File jsonFile = new File(fileName);

    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);

    }

    reader.close();

    jsonStr = sb.toString();

    return jsonStr;

    } catch (IOException e) {

    e.printStackTrace();

    return null;

    }

    }

    }

    编写单元测试

    getResource(""):这个方法可以用于查看当前目录。

    this.getClass().getResource("")和this.getClass().getClassloader().getResource("") 区别?

    第一个是类路径下(即 class 根目录);

    第二个目录是 class目录里面当前类的包路径(package);

    参考下图,推荐写法:

    this.getClass().getClassLoader().getResource("文件名.文件类型")

    8517a46428d106f1bd97fcc6e0b810ec.png

    单元测试方法,具体代码如下。

    @Test

    public void readJsonFile(){

    String path = this.getClass().getClassLoader().getResource("order_template.json").getPath();

    String jsonFile = JsonUtil.readJsonFile(path);

    System.out.println(jsonFile);

    }

    order_template.json文件放入resources资源目录中,如下是输出结果。

    f2d82677a880eaa4de3c229abb834197.png

    展开全文
  • 前言:java 读取 工程下的配置文件文件类型为 json(*.json),记录一下始终读取不到 json 文件的坑。maven项目直接上工具类代码package com.yule.component.dbcomponent.utils;import org.slf4j.Logger;import org....
  • resource下的json文件[{"type": 1,"sites": {"site": [{"id": "1","name": "one"},{"id": "2","name": "two"}]}},{"type": 2,"sites": {"site": [{"id": "3","name": "three"},{"id": "4","name": "four"}]}}]方式一...
  • * 读取json文件,返回json串 * @param fileName * @return */ private static String readJsonFile(String fileName) { String jsonStr = ""; try { File jsonFile = ResourceUtils.getFile(fileName); Fil...
  • import org.springframework.beans.factory.annotation.Value;import org.springframework.core.io....使用@Value注解@Value(value="classpath:default.json")private Resource resource;BufferedReader br = new...
  • java读取url中json文件中的json数据 有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws .....
  • java 项目中很重要的一步就是读取配置文件,主要是 properties 和 xml 文件json 文件没见过,但觉得 json 文件和这两个类似,就顺便看了一下,前端最常用的配置文件不就一个 package.json 嘛。image-...
  • spring boot里读取json文件是一个常见操作,之前在本地idea运行时候读取json文件没有任何问题,但是打包发布后运行会读取不到,解决方法: 要将json文件放到static目录下 读取文件要用 ClassPathResource 和 ...
  • 9已帮助:112人java解析json格式文件,再保存在数据库的方法:1:定义一个实体类2:用json lib将json字符串转为Java对象3:用jdbc或hibernate将java对象存入数据库直接读写文件,再把出来的文件内容格式化成json,再...
  • 一 前言《论语》孔子有言:“工欲善其事,必先利其器。”今年7月,作者迎接更大的挑战,接手并维护了几个Java后端项目。在熟悉业务和代码的过程,快速地对原有项目进行单元测试用例的补充,...
  • 提示:只读取项目中的文件为什么要读取文件:项目需要加载文件中的数据方法一:使用TestPath.class.getResourceAsStream(path)加载数据如下图中的main引用的方法,该方法有二种读取方式(该Class文件是有目录的):第...
  • 本篇博客的示例项目就是将角色权限控制的信息存入到.json文件中,再使用Jackson2RepositoryPopulatorFactoryBean更换.json文件为数据源,在根据需求条件查询获取某个特定用户角色的权限控制关系。 二。项目搭建 说明...
  • 使用java读取json数据

    2021-02-26 15:36:52
    1.项目目录需要下载jar包之后拷入java工程,然后build path-->完成2.ReadJson.javapackage testreadjson;import java.io.FileNotFoundException;import java.io.FileReader;import com.google.gson.JsonArray;...
  • 如何从Java项目中的相对路径读取文件java.io.File找不到指定的路径我有一个包含2个包的项目:ListStopWords.txtListStopWords.txt在包(2)我有一个文本文件ListStopWords.txt,在包(1)我有一个类FileLoadder....
  • Java替换(新增)JSON串里面的某个节点操作替换JSON串里面的某个节点这里使用的是alibaba的fastjson,使用JSONObject解析替换,这里的key存在就会替换,不存在就新增JSONObject object = JSONObject.parseObject(json...
  • Linux解析json---jq

    2021-05-14 17:31:16
     读取Excel直接添代码: public void connExcel(string strPath) { //string strConn = @"Provider=Microsoft.Jet.OLED ...Python 几个重要的内置函数所谓内置函数,就是在Python被自动加载的函数,任何时候都可以用...
  • 从下图可以更直观地看出:ZooKeeper 节点路径标识方式和 Unix 文件系统路径非常相似,都是由一系列使用斜杠"/"进行分割的路径表示,开发人员可以向这个节点写人数据,也可以在节点下面创建子节点。这些操作我们...
  • 一份好的简历可以在整个申请面试以及面试过程起到非常好的作用。 在不夸海口的情况下,写出一份好的简历也是一项很棒的能力。 在校生 如果你是在校生,你应该趁着在学校的时间夯实基础(比如计算机系统、算法、...
  • 放到到一个json文件里面(大的数据字典包可以放到搜索引擎里面,改情况本文不做讨论),然后项目启动时候就可以读取,便于我们使用 initData.json 文件 { "appcInitData":{ "coinTaskInitLogo":{ ...
  • nugetMicrosoft.Extensions.Configuration;Microsoft.Extensions.Configuration.Json;Newtonsoft.Json;.../// /// Json文件读写/// 引用Newtonsoft.Json/// public class JsonFileHelper{//注意:section为根...
  • 程序功能:读取本地JSON文件,并显示到LsitView上,下面详细介绍:1 [2 {3 "operator":"admin1",4 "loginDate":"2012-10-20 10:28:10",5 "logoutDate":"2012-10-20 10:32:10"6 },7 {8 "operator":"admin2",9 "l...
  • 这就是这篇文章的目的,**帮你搜集了大量的面试题,已经整理成了一个Java面试手册PDF,《互联网面试2400页》,目前有65份PDF,共有2400多页,**后续还会不断的完善更新。 直接进入正题,由于pdf文档里的细节内容...
  • 1.读文件通过sc.textFile(“file://")方法来读取文件到rdd。val lines = sc.textFile("file://")//文件地址或者HDFS文件路径本地地址"file:///home/hadoop/spark-1.6.0-bin-hadoop2.6/examples/src/main/resources...
  • 前言平常在工作,对package.json这个文件的接触非常非常少。一些同学可能还会看一下script里面有什么命令,执行了哪些方法。又或者了解一下dependencies和devDep...
  • 本文实例讲述了从Java的jar文件中读取数据的方法。分享给大家供大家参考。具体如下:Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案。它们允许开发人员把所有相关的内容 (.class、图片、声音和支持...
  • 关于程序员,除了做项目、看视频来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!MySQL俨然已经成为了IT技术人员必须掌握的核心技能之一! 《MySQL从入门到精通》 本书详细介绍了如何安装、管理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,994
精华内容 13,597
关键字:

java读项目中的json文件

java 订阅