行政区信息_JSON 解析实现|学习笔记

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 快速学习行政区信息_JSON 解析实现

开发者学堂课程【大数据 Spark2020版(知识精讲与实战演练)第四阶段行政区信息_JSON 解析实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/691/detail/12121


行政区信息_JSON 解析实现


JSON 解析实现

进行具体功能实现,第一步进行 JSON 解析,

1.目标和步骤

(1)目标

通过 JSON4S 和 ESRI 配合解析提供的 GeoJSON 数据集,获取纽约的每个行政区的范围

(2)步骤

①解析 JSON

②使用 ESRI 生成表示行政区的一组 Geometry 对象

2.解析 JSON

(1)步骤

对照 JSON 中的格式,创建解析的目标类(解析 JSON 需要将数据放入对象中,对象的类型需要和 JSON 数据结果是匹配的,先创建目标类,按照 JSON 格式进行创建)

解析 JSON 数据转为目标类的对象

读取数据集,执行解析

step 1:创建目标类

GeoJSON

{

"type"" : "Featurecollection"

"features" : [

"type" : "Feature" ,

"id" : 0,

"properties" : {

"boroughcode" : 5,

"borough" : "Staten Island" ,

"@id":"http:\/\/nyc.pediacities.com\/Resource\/Borough\/staten_Island"

},

"geometry" : {

"type" : "Polygon" ,

"coordinates" : [

[

[-74.050508064032471,40.566422034160816],[-74.049983525625748,40.566395924928273]]

]

]

}

}

]

}

审核 GeoJSON,最外层是一个对象,花括号开始花括号结束,type 是一个属性, features 是一个属性,features 后有一个中括号,与后面中括号对应,又是一个对象,是数组类型,数组中有多个 feature,两个花括号对应,feature 有个属性properties,关注 borough 行政区名称,geometry 代表行政区范围

features 是一个数组,其中每一个 Feature 代表一个行政区

目标类

将 JSON 解析出来,最外层是 Featurecollection,在 JSON 中可以没有某个具体结构,不解析,如果有要与前面名字一一对应

case class Featurecollection(

features : List[Feature]

)

case class Feature(

id: Int,

properties: Map[String, string],

geometry: JObject

)

case class FeatureProperties(boroughcode: Int,borough: string)

features 中是一个 JSON 数组,对象是 feature 对象,feature 有一个 properties,properties 是一个 map,通过 properties 取出其 name,取出 borough 行政区的名字,将 JSON 对象转成 map,通过 map 取 borough 字段,用 JObject 表示 geometry 对象,FeatureProperties 代表 properties 中一个具体对象,可以使用 map 转为 FeatureProperties

将 JSON 拷入 idea 中,创建一个新的类,命名为 Features

{

"type"" : "Featurecollection"

"features" : [

{

"type" : "Feature" ,

"id" : 0,

"properties" : {

"boroughcode" : 5,

"borough" : "Staten Island" ,

"@id":"http:\/\/nyc.pediacities.com\/Resource\/Borough\/staten_Island"

},

"geometry" : {

"type" : "Polygon" ,

"coordinates" : [

[

[-74.050508064032471,40.566422034160816],[-74.049983525625748,40.566395924928273]]

]

]

}

}

]

}

第一个类型命名为 FeaturecollectionFeaturecollection 关注 features,创建具体执行对象,将 Feature 放入 list 中,有 type、id,properties,拿到  properties,可以使用 scala 继续表示类型,也可以使用 map,map 中有键值对,值对应其中的值,获取 geometry 对象,后续要使用 ESRI 直接解析字符串,接下来不需要解析字符串,转为 JObject

import org.json4s. 3sonAST.JObject

case class Featurecollection(features: List[Feature])

case class Feature(properties: Map[String,string], geometry: J0bject)

表示完类型后,将 JSON 字符串解析为目标类对象

提供 object,命名为 FeatureExtraction,提供 parseJson 方法,接收 Json 字符串,返回类型是 FeatureCollection,在方法中完成具体解析工作,导入一个formats隐式转换,JSON 转为 Object

Implicit 创建一个隐式参数,具体转换通过 read 转为 FeatureCollection 类型,将json 传入,read 方法导入一个包,read 方法返回一个对象,FeatureCollection,将 FeatureCollection 对象直接返回,在外部使用时,直接将 json 传入,给 FeatureCollection 类型,在类的范围内完成解析

features 也是一个工具类

object FeatureExtraction {

//完成具体的 JSON 解析工作

def parseson(json: string) : FeatureCollection = {

import org.json4s.jackson.Serialization.readl

//1.导入一个 formats 隐式转换

implicit val formats = Serialization.formats(NoTypeHints)

//2. JSON -> obj

val featurecollection = read[Featurecollection](json)

featurecollection

}

}

相关文章
|
27天前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
66 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
1月前
|
SQL 存储 JSON
SQL,解析 json
SQL,解析 json
66 8
|
15天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3936 2
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
1月前
|
机器学习/深度学习 自然语言处理 JavaScript
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)是量化概率分布差异的关键概念。本文深入探讨了KL散度及其相关概念,包括Jensen-Shannon散度和Renyi散度。KL散度用于衡量两个概率分布之间的差异,而Jensen-Shannon散度则提供了一种对称的度量方式。Renyi散度通过可调参数α,提供了更灵活的散度度量。这些概念不仅在理论研究中至关重要,在实际应用中也广泛用于数据压缩、变分自编码器、强化学习等领域。通过分析电子商务中的数据漂移实例,展示了这些散度指标在捕捉数据分布变化方面的独特优势,为企业提供了数据驱动的决策支持。
53 2
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
|
23天前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
9天前
|
存储 JSON 监控
公司用什么软件监控电脑:JSON 在监控信息交互中的应用探索
在现代企业管理中,电脑监控软件广泛应用于保障信息安全和提升工作效率。JSON(JavaScript Object Notation)因其简洁和易读性,在监控信息的收集、传输和处理中扮演着关键角色。本文介绍了 JSON 在监控数据结构、信息传输及服务器端处理中的具体应用,展示了其在高效监控系统中的重要性。
25 0
|
1月前
|
存储 编译器 C++
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
|
1月前
|
存储 缓存 并行计算
yolov5的train.py的参数信息解析
这篇文章解析了YOLOv5的`train.py`脚本中的参数信息,详细介绍了每个参数的功能和默认值,包括权重路径、模型配置、数据源、超参数、训练轮数、批量大小、图像尺寸、训练选项、设备选择、优化器设置等,以便用户可以根据需要自定义训练过程。
28 0
|
1月前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:
|
18天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道

推荐镜像

更多
下一篇
无影云桌面