Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
app-collection
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐顺
app-collection
Commits
5bbe1873
Commit
5bbe1873
authored
Jan 26, 2021
by
RingEric
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用jackson处理json
parent
37848653
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
0 deletions
+76
-0
src/main/scala/qm/jackson/Jackson.scala
src/main/scala/qm/jackson/Jackson.scala
+76
-0
No files found.
src/main/scala/qm/jackson/Jackson.scala
0 → 100644
View file @
5bbe1873
package
qm.jackson
import
java.util
import
com.fasterxml.jackson.databind.ObjectMapper
import
com.fasterxml.jackson.module.scala.
{
DefaultScalaModule
,
ScalaObjectMapper
}
import
scala.util.
{
Failure
,
Success
,
Try
}
/**
* @ClassName: Jackson
* @Description: TODO
* @Create by: LinYoung
* @Date: 2021/1/15 19:25
*/
object
Jackson
{
private
val
mapper
=
new
ObjectMapper
mapper
.
registerModule
(
DefaultScalaModule
)
/**
*
* @param value
* @return
*/
def
bean2String
(
value
:
Any
)
:
String
=
{
mapper
.
writeValueAsString
(
value
)
}
/**
* 自动解析json串,递归处理json套json的字符串
*
* @param line 要处理的json字符串
* @param resultsMap 放返回结果的map
* @return 返回的结果
*/
def
autoParseJson
(
line
:
String
,
resultsMap
:
util.HashMap
[
String
,
Any
])
:
util.HashMap
[
String
,
Any
]
=
{
Try
{
//json树
val
jsonNode
=
mapper
.
readTree
(
line
)
//获取节点名称
val
keys
=
jsonNode
.
fieldNames
//循环读取节点信息
while
(
keys
.
hasNext
)
{
//取出节点的key
val
key
=
keys
.
next
//取出子节点
val
tmpNode
=
jsonNode
.
get
(
key
)
//判断子节点
if
(
tmpNode
.
isObject
)
{
//json对象
autoParseJson
(
tmpNode
.
toString
,
resultsMap
)
}
else
if
(
tmpNode
.
isArray
)
{
//json数组
resultsMap
.
put
(
key
,
tmpNode
)
}
else
{
//其他类型
if
(
tmpNode
.
isTextual
)
{
resultsMap
.
put
(
key
,
tmpNode
.
asText
)
}
else
{
resultsMap
.
put
(
key
,
tmpNode
)
}
}
}
}
match
{
//发生异常的地方在readTree函数,如果发生异常,resultsMap
case
Success
(
value
)
=>
resultsMap
//返回结果
// case Failure(exception) => new util.HashMap[String, Any] //返回空map
case
Failure
(
exception
)
=>
resultsMap
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment