我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java中JSON数据的读取和解析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java中JSON数据的读取和解析

        在做springboot项目时用到了json文件读取和解析,所以在这里记录一下学习过程中总结的一些点,希望对大家有帮助~

  • 配置fastJson

    com.alibaba    fastjson    1.2.35
  • 构建工具类(方便多次调用时重复使用)

public static JSONObject readJsonFile(String filename){        String jsonString = "";        File jsonFile = new File(filename);        try {            FileReader fileReader = new FileReader(jsonFile);            Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");            int ch = 0;            StringBuffer stringBuffer = new StringBuffer();            while ((ch = reader.read()) != -1){                stringBuffer.append((char) ch);            }            fileReader.close();            reader.close();            jsonString = stringBuffer.toString();        } catch (FileNotFoundException e){            JSONObject notFoundJson = new JSONObject();            notFoundJson.put("code",Code.GET_ERR);            notFoundJson.put("msg","该地区GeoJson文件不存在!");            return notFoundJson;        } catch (IOException e) {            e.printStackTrace();        }        return JSONObject.parseObject(jsonString);    }
  • json文件示例(以geojson为例,数据结构比较复杂,只是层次比较多)

{    "type": "FeatureCollection",    "features": [        {            "type": "Feature",            "properties": {                "adcode": 110101,                "name": "东城区",                "center": [                    116.418757,                    39.917544                ],                "centroid": [                    116.416739,                    39.912912                ],                "childrenNum": 0,                "level": "district",                "acroutes": [                    100000,                    110000                ],                "parent": {                    "adcode": 110000                }            },            "geometry": {                "type": "MultiPolygon",                "coordinates": [                    [                        [                            [                                116.387664,                                39.960923                            ],                            [                                116.38948,                                39.961038                            ],                            [                                116.389506,                                39.963147                            ],                            [                                116.396959,                                39.963204                            ]                        ]                    ]                ]            }        }    ]}
  • 调用工具类读取数据:

String filePath = "文件路径";// 读取json文件JSONObject jsonObejct = readJsonFile(filePath);
  • 读取json对象中的"features"字段内容,是数组类型的,采用以下方式:

// 方式一JSONArray featureArray = JSON.parseArray(jsonObejct.get("features").toString());// 方式二JSONArray featureArray = jsonObejct.getJSONArray("features");
  • 读取对象类型字段:

// 方式一JSONObject propertiesObject = JSONObject.parseObject(regionObject.getString("properties"));// 方式二JSONObject propertiesObject = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("properties");
  • 读取字符串类型:

// 方式一String type = jsonObejct.get("type").toString();// 方式二String type = jsonObejct.getString("type");
  • 读取整数类型:

// 方式一String type = jsonObejct.get("type").toString();// 方式二String type = jsonObejct.getString("type");
  • 整体解析:

String filePath = "文件地址/文件名.json";JSONObject jsonObejct = ReadJsonUtils.readJsonFile(filePath);​// 方式一(很复杂,语句分开,但是结构清晰)// 读取json文件的features字段,并转换为json数组JSONArray featureArray = JSON.parseArray(jsonObejct.get("features").toString());// 读取数组第一个元素,为地区对象JSONObject regionObject = JSONObject.parseObject(featureArray.get(0).toString());// 读取地区对象中的参数对象JSONObject propertiesObject = JSONObject.parseObject(regionObject.getString("properties"));// 读取参数对象的名称String name = propertiesObject.getString("name");// 读取参数对象的地区代码int adcode = propertiesObject.getIntValue("adcode");// 读取地区对象的几何对象JSONObject geometryObject = JSONObject.parseObject(regionObject.get("geometry").toString());// 读取几何字段中的坐标数组JSONArray coordinates = JSONObject.parseArray(geometryObject.get("coordinates").toString());// 读取几何对象中的类型名称String type = geometryObject.getString("type");​// 方式二(无需每次重新转换类型,一行搞定)String name = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("properties").getString("name");String type = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("geometry").getString("type");JSONArray coordinates = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("geometry").getJSONArray("coordinates");

来源地址:https://blog.csdn.net/qq_45118905/article/details/127511551

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java中JSON数据的读取和解析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java读取json数据中文乱码解决

java读取json数据出现乱码的代码:(推荐:java视频教程)//从json文件中读取数据StringBuffer stringBuffer = new StringBuffer();try {BufferedReader bufferedReader =
java读取json数据中文乱码解决
2021-06-27

Python中JSON数据的读取方法

小编给大家分享一下Python中JSON数据的读取方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、
2023-06-14

解析 JSON:文件和字符串的读取

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《解析 JSON:文件和字符串的读取》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!问题内容我有一
解析 JSON:文件和字符串的读取
2024-04-04

java怎么读取json文件并解析

Java可以使用许多库来读取和解析JSON文件,其中最常用的是JSON.org和Jackson库。以下是使用这两个库的示例代码:1. 使用JSON.org库:```javaimport org.json.JSONArray;import o
2023-09-12

Python中JSON数据怎么读取

本文小编为大家详细介绍“Python中JSON数据怎么读取”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中JSON数据怎么读取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。读取方法1、必须导入JSO
2023-06-30

go语言中json数据的读取和写出操作

go自带json库,在使用时需要通过 import "encoding/json"来导入该库。 在读取和写入json数据之前需要定义相关的结构体来对应被操作的json数据的格式,并且结构体中需要导出或导入的变量首字母大写。 其中,json.
2022-06-07

java如何解析json数据

Java可以使用Json库来解析JSON数据。以下是使用Jackson库来解析JSON数据的示例代码:1. 导入Jackson库的依赖:```xmlcom.fasterxml.jackson.corejackson-databind2.12
2023-08-24

java怎么解析json数据

Java提供了许多库来解析JSON数据,其中最常用的有以下几种方法:1. 使用Java标准库(javax.json):Java标准库提供了javax.json包,可以用来解析和生成JSON数据。可以通过以下步骤来解析JSON数据:a. 创建
2023-08-25

如何从json文件中读取数据

你可以使用Python的`json`模块来读取JSON文件。下面是一个简单的示例代码:```pythonimport json# 打开JSON文件with open('data.json') as file:# 使用json.load()方
2023-09-13

Android通过json向MySQL中读写数据的方法详解【读取篇】

本文实例讲述了Android通过json向MySQL中读取数据的方法。分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下:private void parseJsonMulti(Str
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录