Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
88e82ac8
Commit
88e82ac8
authored
Oct 18, 2019
by
季圣华
Browse files
升级fastjson到1.2.55版本
parent
6f01de07
Changes
2
Hide whitespace changes
Inline
Side-by-side
pom.xml
View file @
88e82ac8
...
...
@@ -45,7 +45,7 @@
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.
1.42
</version>
<version>
1.
2.55
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
...
...
src/main/java/com/jsh/erp/utils/ExtJsonUtils.java
View file @
88e82ac8
...
...
@@ -138,58 +138,4 @@ public class ExtJsonUtils {
public
interface
ExtExtractor
{
String
getExt
(
Object
bean
);
}
private
static
class
MetaInfo
{
private
final
static
ParserConfig
INSTANCE
=
ParserConfig
.
getGlobalInstance
();
private
final
Object
object
;
private
final
Map
<
String
,
FieldDeserializer
>
map
;
private
final
JSONObject
ext
=
new
JSONObject
();
private
MetaInfo
(
Object
object
)
{
this
.
object
=
object
;
this
.
map
=
INSTANCE
.
getFieldDeserializers
(
object
.
getClass
());
}
void
gather
(
String
key
,
Object
value
)
{
if
(!
map
.
containsKey
(
key
))
{
ext
.
put
(
key
,
value
);
}
}
public
void
update
(
ExtExtractor
extractor
)
{
JSONObject
old
=
JSON
.
parseObject
(
extractor
.
getExt
(
object
));
if
(
old
==
null
)
{
old
=
new
JSONObject
();
}
old
.
putAll
(
ext
);
map
.
get
(
EXT_NAME
).
setValue
(
object
,
old
.
toJSONString
());
}
static
boolean
hasExt
(
Class
<?>
clazz
)
{
return
INSTANCE
.
getFieldDeserializers
(
clazz
).
containsKey
(
EXT_NAME
);
}
}
public
static
<
T
>
T
parseObject
(
String
text
,
final
Class
<
T
>
clazz
,
ExtExtractor
extractor
)
{
final
Map
<
Object
,
MetaInfo
>
map
=
new
HashMap
<>();
T
object
=
JSON
.
parseObject
(
text
,
clazz
,
new
ExtraProcessor
()
{
@Override
public
void
processExtra
(
Object
object
,
String
key
,
Object
value
)
{
if
(!
map
.
containsKey
(
object
)
&&
MetaInfo
.
hasExt
(
object
.
getClass
()))
{
map
.
put
(
object
,
new
MetaInfo
(
object
));
}
if
(
map
.
containsKey
(
object
))
{
map
.
get
(
object
).
gather
(
key
,
value
);
}
}
});
for
(
Map
.
Entry
<
Object
,
MetaInfo
>
entry
:
map
.
entrySet
())
{
entry
.
getValue
().
update
(
extractor
);
}
return
object
;
}
}
Write
Preview
Supports
Markdown
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