读取本地json文件_九月十九的博客-程序员宅基地_读取本地json文件

技术标签: java  

1,读取文件的公共方法。

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

2,以城市为例,先把文件放入项目的资源文件下 我的是 :    E:\\tf\\aizzb-process\\aizzb-web\\src\\main\\resources\\process\\templates\\110101.json

调用方法读取就可以了。读取的时候根据json 的结构依次解析就可以。

public static void main(String[] args) throws  Exception{
        String s = readJsonFile("E:\\tf\\aizzb-process\\aizzb-web\\src\\main\\resources\\process\\templates\\110101.json");
        System.out.println("解析的json:"+s);
        JSONObject jsonObject = JSONObject.parseObject(s);
        JSONObject a = (JSONObject)jsonObject.getJSONArray("features").get(0);
        System.out.println("数组第一项:"+a);
        String type = a.getString("properties");
        System.out.println("第一项里的对象:"+type);
        JSONObject json = JSONObject.parseObject(type);
        System.out.println("我们需要的城市:"+json.getString("name"));
    }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_30299243/article/details/115790084

智能推荐

Bootstrap FileInput插件的使用_Michael_Jier的博客-程序员宅基地

详细介绍(英语):http://plugins.krajee.com/file-preview-management-demo#preview-iconicBootstrap FileInput中文API整理:https://blog.csdn.net/u012526194/article/details/69937741java+springboot+bootstrap-file...

Revit二次开发--获取门窗数量_小田同學的博客-程序员宅基地

1.在建筑物中,获取所有的门窗数量using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autod

关于rosbag的使用和问题_酒中喜桃子的博客-程序员宅基地

一开始想使用rosbag来录一下 /cmd_vel来使机器人走固定路径,但是开始录制的和回放的总不一样。后来总结了两点:1)往想方向存在跑,试一下,跑的路径短一点。 2)操作慢一点,轮子存在打滑。关于rosbag的使用,参考知乎 https://zhuanlan.zhihu.com/p/151444739...

win10 .NET Framework3.5离线安装.assets_「已注销」的博客-程序员宅基地

由于win10 .NET Framework只有4.7的版本,没有内置3.5的版本,需要自己手动安装。有时候网络状况不好,在线安装需要耗费相当长的时间,于是离线安装的方法变得尤为重要。在网上查阅无数离线安装教程,也下载过无数安装包,始终没有安装成功,最后还是IT天空给力,使用了IT天空发布的一件运行库终于安装成功,现在在写一篇帖子记录一下。百度搜索“IT天空”进入“一键运行库 1.14.2019.426(2019.05.08 发布)”下载安装即可。PS:IT天空这个网站非常棒,系统装机请

ubuntu 12.04 64位环境下编译cm 10.1 for mako_godcok的博客-程序员宅基地

转载请声明出处。http://www.cnblogs.com/csonezp/archive/2013/03/21/2974071.html无图无排版,基本纯文字。首先提供我这次编译过程的参考来源:1,android官方指南:http://source.android.com/source/index.html2,cm 官方wiki:http://wik

Git基本配置_Spirit_Joker的博客-程序员宅基地

1.安装windows版本的git客户端下载地址:https://git-scm.com/downloads2.设置用户名和邮箱 在git命令行中对git进行全局设置: git config --global user.name "用户名"; git config --global user.email "邮箱地址";3. 生成SSH key 在git命令行中,输入命令: cd ~/.ssh,来检测是否生成过key,没有生成过key,会有相关信息提示。 输入命令: ssh-ke

随便推点

oracle 聚合函数 LISTAGG ,将多行结果合并成一行_leefang_cvic的博客-程序员宅基地

LISTAGG(列名,’ 分割符号’)oracle 11g 以上的版本才有的一个将指定列名的多行查询结果,用 指定的分割符号 合并成一行显示:例如:表原始数据:需求:将 mb1_Transport_License_list 表中的数据,根据 transportation_license_id 数据进行分组,对 Item_Category_Name 列的数据进行 去重合并使用聚合函数 L...

存储管理之页式、段式、段页式存储 以及 优缺点_ZhangJiQun&MXP的博客-程序员宅基地_段页式存储的优缺点

核心就是:是否产生碎片和是否增大机器硬件开销。内存管理方式主要分为:页式管理、段式管理和段页式管理。页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页。把内存空间按页的大小划分为片或者页面,然后把页式虚拟地址与内存地址建立一一对应的页表,并用相应的硬件地址转换机构来解决离散地址变换问题。页式管理采用请求调页和预调页技术来实现内外存存储器的统一管理。优点:没有外碎片,每...

js动态添加div_烟草的香味.的博客-程序员宅基地_js点击按钮添加div

问题有没有遇到过这样的需求, 在页面上会有不定个input, 点击添加按钮就添加每次写这玩意好麻烦啊, 把他封装起来, 需要的时候调用就好了思路因为每个input标签的name如果相同的话, 在后端接收的时候会出错, 所以我的解决办法就是在name后加上一个数字, 后端用一个循环进行接收点击第一行的添加点击的时候, 将div准备好, 添加到内容div中的第一个点击每行的添加将di...

基于winSW开源工具将springBoot 项目部署为一个window服务_hnmpf的博客-程序员宅基地

背景: springboot 项目可以直接打包成一个个的jar包,我们可以简单的通过-jar 来运行它。那么我们会或多或少的遇到如下问题 问题一:怎么批量部署jar服务? 问题二:在windows 环境下如何区分一个个的java 服务? 问题三:在windows中能不能做到开机启动了?解决方案(Windows): ...

2019.9.5C++基础学习笔记——C++异常处理_战地小记者的博客-程序员宅基地

C++基础学习笔记——C++异常处理异常处理关键字:在编程时经常会对项目进行测试,但是一般代码中出现了错误时,程序会因为错误无法向下执行而卡住或中断。有时在测试代码时希望程序就算出现了异常状况也能继续执行相应的处理而不是直接中断或卡住。在C++中,一个函数能够检测出异常并且将异常返回,这种机制称为抛出异常。当抛出异常后,函数调用者捕获到该异常,并对该异常进行处理,我们称之为异常捕获。C++...

golang 字符串 去首尾字符_whatday的博客-程序员宅基地_golang 去除首尾空格

使用函数:Trimfunc Trim(s [string], cutset [string]) [string]功能:将 s 前后端所有 cutset 字符串去除。返回处理后的新字符串参 1:s,表示待处理的字符串参 2:cutset,表连待去除的字符串,返回值:处理完成的新字符串。通常使用该函数去除字符串中包含的多余空格。示例代码:fmt.Printf("[%q]\n", strings.Trim(" !!! Achtung! Achtung! !!! ", "! ")

推荐文章

热门文章

相关标签