1
0
mirror of synced 2025-12-14 02:37:58 +08:00

🎨 修复 GsonParser 与低版本 Gson 的兼容性问题

This commit is contained in:
Copilot
2025-11-17 11:11:51 +08:00
committed by GitHub
parent b8d2bb345a
commit 3c440eacb3
2 changed files with 50 additions and 3 deletions

View File

@@ -12,14 +12,14 @@ import java.io.Reader;
public class GsonParser {
public static JsonObject parse(String json) {
return JsonParser.parseString(json).getAsJsonObject();
return new JsonParser().parse(json).getAsJsonObject();
}
public static JsonObject parse(Reader json) {
return JsonParser.parseReader(json).getAsJsonObject();
return new JsonParser().parse(json).getAsJsonObject();
}
public static JsonObject parse(JsonReader json) {
return JsonParser.parseReader(json).getAsJsonObject();
return new JsonParser().parse(json).getAsJsonObject();
}
}

View File

@@ -0,0 +1,47 @@
package me.chanjar.weixin.common.util.json;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonReader;
import org.testng.annotations.Test;
import java.io.StringReader;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
/**
* GsonParser 测试类
*
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
public class GsonParserTest {
@Test
public void testParseString() {
String json = "{\"code\":\"ALREADY_EXISTS\",\"message\":\"当前订单已关闭,可查询订单了解关闭原因\"}";
JsonObject jsonObject = GsonParser.parse(json);
assertNotNull(jsonObject);
assertEquals(jsonObject.get("code").getAsString(), "ALREADY_EXISTS");
assertEquals(jsonObject.get("message").getAsString(), "当前订单已关闭,可查询订单了解关闭原因");
}
@Test
public void testParseReader() {
String json = "{\"code\":\"SUCCESS\",\"message\":\"处理成功\"}";
StringReader reader = new StringReader(json);
JsonObject jsonObject = GsonParser.parse(reader);
assertNotNull(jsonObject);
assertEquals(jsonObject.get("code").getAsString(), "SUCCESS");
assertEquals(jsonObject.get("message").getAsString(), "处理成功");
}
@Test
public void testParseJsonReader() {
String json = "{\"errcode\":0,\"errmsg\":\"ok\"}";
JsonReader jsonReader = new JsonReader(new StringReader(json));
JsonObject jsonObject = GsonParser.parse(jsonReader);
assertNotNull(jsonObject);
assertEquals(jsonObject.get("errcode").getAsInt(), 0);
assertEquals(jsonObject.get("errmsg").getAsString(), "ok");
}
}