Skip to content

Commit 3c440ea

Browse files
authored
🎨 修复 GsonParser 与低版本 Gson 的兼容性问题
1 parent b8d2bb3 commit 3c440ea

File tree

2 files changed

+50
-3
lines changed

2 files changed

+50
-3
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/GsonParser.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
public class GsonParser {
1313

1414
public static JsonObject parse(String json) {
15-
return JsonParser.parseString(json).getAsJsonObject();
15+
return new JsonParser().parse(json).getAsJsonObject();
1616
}
1717

1818
public static JsonObject parse(Reader json) {
19-
return JsonParser.parseReader(json).getAsJsonObject();
19+
return new JsonParser().parse(json).getAsJsonObject();
2020
}
2121

2222
public static JsonObject parse(JsonReader json) {
23-
return JsonParser.parseReader(json).getAsJsonObject();
23+
return new JsonParser().parse(json).getAsJsonObject();
2424
}
2525
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package me.chanjar.weixin.common.util.json;
2+
3+
import com.google.gson.JsonObject;
4+
import com.google.gson.stream.JsonReader;
5+
import org.testng.annotations.Test;
6+
7+
import java.io.StringReader;
8+
9+
import static org.testng.Assert.assertEquals;
10+
import static org.testng.Assert.assertNotNull;
11+
12+
/**
13+
* GsonParser 测试类
14+
*
15+
* @author <a href="https://github.com/binarywang">Binary Wang</a>
16+
*/
17+
public class GsonParserTest {
18+
19+
@Test
20+
public void testParseString() {
21+
String json = "{\"code\":\"ALREADY_EXISTS\",\"message\":\"当前订单已关闭,可查询订单了解关闭原因\"}";
22+
JsonObject jsonObject = GsonParser.parse(json);
23+
assertNotNull(jsonObject);
24+
assertEquals(jsonObject.get("code").getAsString(), "ALREADY_EXISTS");
25+
assertEquals(jsonObject.get("message").getAsString(), "当前订单已关闭,可查询订单了解关闭原因");
26+
}
27+
28+
@Test
29+
public void testParseReader() {
30+
String json = "{\"code\":\"SUCCESS\",\"message\":\"处理成功\"}";
31+
StringReader reader = new StringReader(json);
32+
JsonObject jsonObject = GsonParser.parse(reader);
33+
assertNotNull(jsonObject);
34+
assertEquals(jsonObject.get("code").getAsString(), "SUCCESS");
35+
assertEquals(jsonObject.get("message").getAsString(), "处理成功");
36+
}
37+
38+
@Test
39+
public void testParseJsonReader() {
40+
String json = "{\"errcode\":0,\"errmsg\":\"ok\"}";
41+
JsonReader jsonReader = new JsonReader(new StringReader(json));
42+
JsonObject jsonObject = GsonParser.parse(jsonReader);
43+
assertNotNull(jsonObject);
44+
assertEquals(jsonObject.get("errcode").getAsInt(), 0);
45+
assertEquals(jsonObject.get("errmsg").getAsString(), "ok");
46+
}
47+
}

0 commit comments

Comments
 (0)