获取json字符串中某个值,json文件提取指定字段

  获取json字符串中某个值,json文件提取指定字段

  

目录

使用场景抽取数据指定字段值数据文件格式导入依赖代码实现完整代码把需要的数据整理到超过中

 

  

使用场景

我有一个5000条数据的数据文件,每条数据包含地名、该地的经纬度等其他很多信息。现在想把地名和经纬度抽出来导入到数据库中。

 

  导航猫自带的导入数据格式文件不好用,只能导入数据文件中的外层数据,而我需要的地名和经纬度信息在数据的内层。

  

抽取json指定字段值

 

  

json文件格式

{ type : 要素集合, features :[{ type : 要素, geometry : { type : 点, coordinates: [117.135437,39.22393]}, properties: {type: 1, OBJECTID : 9288, CC某某村, PAC: 120104008006111 , ELEMSTIME: 20150630 , ELEMETIME: , AREACODE: 120000, FEATID: 120000403, ChangeType : ChangeAtt: },{type: Feature ,某某社区, PAC: 120104003014111 , ELEMSTIME: 20150630 , ELEMETIME: , AREACODE: 120000, FEATID : 120000458, ChangeType : change att : }]}

 

  

导入依赖

在pom.xml文件里加上使用

 

  依赖性groupIdcom.alibaba/groupId artifactIdfastjson/artifactId版本1 .2 .9/版本/依赖性

  

代码实现

读取本地json文件的方法

 

  公共静态字符串readJsonFile(字符串文件名){ String jsonStr=尝试{ File JSON File=new File(fileName);FileReader FileReader=new FileReader(JSON文件);reader reader=new InputStreamReader(新文件inputstream(JSON文件), utf-8 );int ch=0;字符串缓冲区sb=新字符串缓冲区();while ((ch=reader.read())!=-1){ sb。append((char)ch);}文件阅读器。close();读者。close();JSON str=sb。tostring();返回jsonStr} catch(io异常e){ e . printstacktrace();返回null } }读取指定字段

  先把数据文件放在资源下面(直接复制到资源)

  string path=ddem。班级。获取类加载器().getResource(villagePoint.json ).getPath();string s=read JSON file(path);JSON对象jobj=JSON。解析对象;JSON数组特性=jobj。getjson数组( features );//构建对象数组for(int I=0;一.特点。size();I){ JSON object key=(JSON object)特性。get(I);JSON对象几何=key。getjson对象( geometry );JSON数组坐标=几何。getjson数组( coordinates );BigDecimal杜菁=坐标。getbigdecimal(0);BigDecimal杜威=坐标。getbigdecimal(1);JSON对象属性=key。getjson对象( properties );String NAME=(String)属性。getstring( NAME );//System.out.println(杜菁);//System.out.println(杜威);System.out.println(名称);}JSONObject或对象可以得到很多种类型,具体用哪个看你自己的数据内容

  

完整代码

导入com。阿里巴巴。快速JSON。JSON导入com。阿里巴巴。快速JSON。JSON数组;导入com。阿里巴巴。快速JSON。JSON对象;导入Java。io。*;导入Java。数学。bigdecimalpublic class ddem { public static void main(String[]args){ String path=ddem。班级。获取类加载器().getResource(villagePoint.json ).getPath();string s=read JSON file(path);JSON对象jobj=JSON。解析对象;JSON数组特性=jobj。getjson数组( features );//构建对象数组for(int I=0;一.特点。size();I){ JSON object key=(JSON object)特性。get(I);JSON对象几何=key。getjson对象( geometry );JSON数组坐标=几何。getjson数组( coordinates );BigDecimal杜菁=坐标。getbigdecimal(0);BigDecimal杜威=坐标。getbigdecimal(1);JSON对象属性=key。getjson对象( properties );String NAME=(String)属性。getstring( NAME );//System.out.println(杜菁);//System.out.println(杜威);System.out.println(名称);} } //读取数据文件公共静态字符串readJsonFile(字符串文件名){ String jsonStr=尝试{ File JSON File=new File(fileName);FileReader FileReader=new FileReader(JSON文件);reader reader=new InputStreamReader(新文件inputstream(JSON文件), utf-8 );int ch=0;字符串缓冲区sb=新字符串缓冲区();while ((ch=reader.read())!=-1){ sb。append((char)ch);}文件阅读器。close();读者。close();JSON str=sb。tostring();返回jsonStr} catch(io异常e){ e . printstacktrace();返回null} }}

 

  

把需要的数据整理到excel中

如上例所示,我需要地名和经纬度,可以一次性查出三列数据,但是为了复制到超过比较方便,我选择一个一个查出来,逐个复制到超过中,再为每列起个列名,就能非常方便地使用导航猫的"导入xls "功能导入大量数据啦~

 

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行它.

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • js把字符串转为json,json字符串转换成json对象
  • js把字符串转为json,json字符串转换成json对象,js 将json字符串转换为json对象的方法解析
  • json语法格式,json格式定义
  • json语法格式,json格式定义,Json格式详解
  • json格式数据类型,什么是JSON数据-其常见格式是什么-
  • json格式数据类型,什么是JSON数据-其常见格式是什么-,JSON 数据格式详解
  • json格式怎么写,json文件内容格式
  • json格式怎么写,json文件内容格式,json文件书写格式详解
  • json数组对象转化为json字符串,js把数组转化为json
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法,JSON对象转化为字符串详解
  • json基础介绍与详细用法教程,json基础知识
  • json基础介绍与详细用法教程,json基础知识,JSON基础介绍与详细用法
  • json去掉反斜杠,json字符串中有反斜杠
  • json去掉反斜杠,json字符串中有反斜杠,详解json串反转义(消除反斜杠)
  • 留言与评论(共有 条评论)
       
    验证码: