Skip to content

Commit 004ca7b

Browse files
committed
Optimization GSON.
1 parent 4872873 commit 004ca7b

File tree

4 files changed

+108
-1
lines changed

4 files changed

+108
-1
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package tech.dbgsoftware.easyrest.utils;
2+
3+
import com.google.gson.TypeAdapter;
4+
import com.google.gson.stream.JsonReader;
5+
import com.google.gson.stream.JsonToken;
6+
import com.google.gson.stream.JsonWriter;
7+
8+
import java.io.IOException;
9+
10+
public class DoubleTypeAdapter extends TypeAdapter<Double> {
11+
@Override
12+
public Double read(JsonReader reader) throws IOException {
13+
if(reader.peek() == JsonToken.NULL){
14+
reader.nextNull();
15+
return 0D;
16+
}
17+
String stringValue = reader.nextString();
18+
try{
19+
Double value = Double.valueOf(stringValue);
20+
return value;
21+
}catch(NumberFormatException e){
22+
return 0D;
23+
}
24+
}
25+
@Override
26+
public void write(JsonWriter writer, Double value) throws IOException {
27+
if (value == null) {
28+
writer.nullValue();
29+
return;
30+
}
31+
writer.value(value);
32+
}
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package tech.dbgsoftware.easyrest.utils;
2+
3+
import com.google.gson.TypeAdapter;
4+
import com.google.gson.stream.JsonReader;
5+
import com.google.gson.stream.JsonToken;
6+
import com.google.gson.stream.JsonWriter;
7+
8+
import java.io.IOException;
9+
10+
public class IntegerTypeAdapter extends TypeAdapter<Integer> {
11+
@Override
12+
public Integer read(JsonReader reader) throws IOException {
13+
if(reader.peek() == JsonToken.NULL){
14+
reader.nextNull();
15+
return 0;
16+
}
17+
String stringValue = reader.nextString();
18+
try{
19+
Integer value = Integer.valueOf(stringValue);
20+
return value;
21+
}catch(NumberFormatException e){
22+
return 0;
23+
}
24+
}
25+
@Override
26+
public void write(JsonWriter writer, Integer value) throws IOException {
27+
if (value == null) {
28+
writer.nullValue();
29+
return;
30+
}
31+
writer.value(value);
32+
}
33+
}

EasyRest/src/main/java/tech/dbgsoftware/easyrest/utils/JsonTranslationUtil.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,14 @@
77

88
public class JsonTranslationUtil {
99

10-
private static final Gson GSON = new GsonBuilder().create();
10+
private static final Gson GSON = new GsonBuilder()
11+
.registerTypeAdapter(Long.class, new LongTypeAdapter())
12+
.registerTypeAdapter(long.class, new IntegerTypeAdapter())
13+
.registerTypeAdapter(Double.class, new DoubleTypeAdapter())
14+
.registerTypeAdapter(double.class, new DoubleTypeAdapter())
15+
.registerTypeAdapter(Integer.class, new IntegerTypeAdapter())
16+
.registerTypeAdapter(int.class, new IntegerTypeAdapter())
17+
.create();
1118

1219
public static String toJsonString(Object object){
1320
return GSON.toJson(object);
@@ -21,6 +28,7 @@ public static <T> T fromJson(String jsonString, Type type){
2128
try {
2229
return GSON.fromJson(jsonString, type);
2330
} catch (Exception e){
31+
LogUtils.error(e.getMessage(), e);
2432
return null;
2533
}
2634
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package tech.dbgsoftware.easyrest.utils;
2+
3+
import com.google.gson.TypeAdapter;
4+
import com.google.gson.stream.JsonReader;
5+
import com.google.gson.stream.JsonToken;
6+
import com.google.gson.stream.JsonWriter;
7+
8+
import java.io.IOException;
9+
10+
public class LongTypeAdapter extends TypeAdapter<Long> {
11+
@Override
12+
public Long read(JsonReader reader) throws IOException {
13+
if(reader.peek() == JsonToken.NULL){
14+
reader.nextNull();
15+
return 0L;
16+
}
17+
String stringValue = reader.nextString();
18+
try{
19+
Long value = Long.valueOf(stringValue);
20+
return value;
21+
}catch(NumberFormatException e){
22+
return 0L;
23+
}
24+
}
25+
@Override
26+
public void write(JsonWriter writer, Long value) throws IOException {
27+
if (value == null) {
28+
writer.nullValue();
29+
return;
30+
}
31+
writer.value(value);
32+
}
33+
}

0 commit comments

Comments
 (0)