Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-service
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
zhuyifan
2025-04-16 17:27:00 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
93bcdd990925b36fb2e2c7c59030e106e408270b
93bcdd99
1 parent
ef0c903e
农信点餐小程序
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
1 deletions
src/main/java/com/tianting/infoloop/utils/JSONUtil.java
src/main/java/com/tianting/infoloop/utils/ProtoBeanUtil.java
src/main/java/com/tianting/infoloop/utils/JSONUtil.java
0 → 100644
View file @
93bcdd9
package
com
.
tianting
.
infoloop
.
utils
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.module.SimpleModule
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
java.io.IOException
;
import
java.util.List
;
public
final
class
JSONUtil
{
private
static
final
ObjectMapper
OBJECT_MAPPER
=
new
ObjectMapper
();
static
{
final
SimpleModule
module
=
new
SimpleModule
();
module
.
addSerializer
(
Long
.
class
,
ToStringSerializer
.
instance
);
module
.
addSerializer
(
long
.
class
,
ToStringSerializer
.
instance
);
OBJECT_MAPPER
.
registerModule
(
module
);
// 如果json中有新增的字段并且是实体类类中不存在的,不报错
OBJECT_MAPPER
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
// 序列化时忽略值为null的属性
OBJECT_MAPPER
.
setSerializationInclusion
(
JsonInclude
.
Include
.
NON_NULL
);
}
public
static
String
writeAsJson
(
final
Object
object
)
{
try
{
return
OBJECT_MAPPER
.
writeValueAsString
(
object
);
}
catch
(
final
JsonProcessingException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
>
T
readJsonAs
(
final
String
json
,
final
Class
<
T
>
clazz
)
{
try
{
return
OBJECT_MAPPER
.
readerFor
(
clazz
).
readValue
(
json
);
}
catch
(
final
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
public
static
<
T
>
List
<
T
>
readJsonAsList
(
String
jsonString
,
Class
<
T
>
clazz
)
{
try
{
return
OBJECT_MAPPER
.
readValue
(
jsonString
,
new
TypeReference
<>()
{
});
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"Failed to convert JSON to List<"
+
clazz
.
getSimpleName
()
+
">"
,
e
);
}
}
public
static
<
T
>
JsonNode
readTree
(
final
String
json
)
{
try
{
return
OBJECT_MAPPER
.
readTree
(
json
);
}
catch
(
final
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
private
JSONUtil
()
{}
}
src/main/java/com/tianting/infoloop/utils/ProtoBeanUtil.java
View file @
93bcdd9
...
...
@@ -104,7 +104,7 @@ public class ProtoBeanUtil {
*/
private
static
<
M
extends
Message
.
Builder
>
void
jsonToBuilder
(
M
targetBuilder
,
String
json
)
{
try
{
JsonFormat
.
parser
().
ignoringUnknownFields
().
merge
(
json
,
targetBuilder
);
JsonFormat
.
parser
().
ignoringUnknownFields
().
merge
(
JSONUtil
.
writeAsJson
(
json
)
,
targetBuilder
);
}
catch
(
Exception
e
)
{
throw
new
IllegalArgumentException
(
"ProtoBeanUtil->JsonToBuilder->errorMessage:json 转 Builder对象异常"
,
e
);
}
...
...
Please
register
or
login
to post a comment