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

简介: 快速学习行政区信息_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

}

}

相关文章
|
3月前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
5月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
4月前
|
JSON 算法 API
淘宝商品评论API接口核心解析,json数据返回
淘宝商品评论API是淘宝开放平台提供的数据服务接口,允许开发者通过编程方式获取指定商品的用户评价数据,包括文字、图片、视频评论及评分等。其核心价值在于:
|
2月前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
284 3
|
2月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
213 0
|
6月前
|
JSON 定位技术 PHP
PHP技巧:解析JSON及提取数据
这就是在PHP世界里探索JSON数据的艺术。这场狩猎不仅仅是为了获得数据,而是一种透彻理解数据结构的行动,让数据在你的编码海洋中畅游。通过这次冒险,你已经掌握了打开数据宝箱的钥匙。紧握它,让你在编程世界中随心所欲地航行。
236 67
|
3月前
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
9月前
|
数据采集 JSON 数据可视化
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
586 4
JSON数据解析实战:从嵌套结构到结构化表格
|
11月前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
1689 12
|
9月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
918 29

热门文章

最新文章

推荐镜像

更多
  • DNS