如何使用Java将Gson生成的JSON字符串还原为原始二维数组
在Java中将JSON字符串还原为二维字符串数组
既然你之前是用Gson把二维数组转成JSON字符串的,那用Gson来反序列化回去肯定是最顺手的选择,下面给你一步步讲怎么实现:
1. 确保项目引入Gson依赖
如果你的项目用Maven管理,在pom.xml里添加以下依赖:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> <!-- 建议使用最新稳定版 --> </dependency>
如果是Gradle项目,在build.gradle的dependencies块里添加:
implementation 'com.google.code.gson:gson:2.10.1'
2. 编写反序列化代码
你只需要几行代码就能完成转换,Gson会自动匹配JSON数组和Java二维字符串数组的结构:
import com.google.gson.Gson; public class JsonToArrayExample { public static void main(String[] args) { // 你的目标JSON字符串 String jsonReels = "[[\"BL\",\"77\",\"BL\",\"1B\",\"BL\",\"3B\",\"BL\",\"1B\",\"BL\",\"77\",\"BL\",\"2B\",\"BL\",\"1B\",\"BL\",\"LG\",\"BL\",\"1B\",\"BL\",\"3B\",\"BL\",\"2B\"],[\"BL\",\"77\",\"BL\",\"1B\",\"BL\",\"3B\",\"BL\",\"1B\",\"BL\",\"77\",\"BL\",\"2B\",\"BL\",\"1B\",\"BL\",\"LG\",\"BL\",\"1B\",\"BL\",\"3B\",\"BL\",\"2B\"],[\"BL\",\"77\",\"BL\",\"1B\",\"BL\",\"3B\",\"BL\",\"1B\",\"BL\",\"77\",\"BL\",\"2B\",\"BL\",\"1B\",\"BL\",\"LG\",\"BL\",\"1B\",\"BL\",\"3B\",\"BL\",\"2B\"]]"; Gson gson = new Gson(); // 直接反序列化为二维String数组 String[][] reels = gson.fromJson(jsonReels, String[][].class); // 可以打印验证结果,比如输出第一行第一个元素 System.out.println(reels[0][0]); // 会输出 "BL" } }
另一种泛型方式(可选)
如果之后需要处理更复杂的泛型结构,也可以用TypeToken来明确数组类型:
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; public class JsonToArrayExample { public static void main(String[] args) { String jsonReels = "[[\"BL\",\"77\",...]]"; // 替换为你的JSON字符串 Gson gson = new Gson(); Type reelsType = new TypeToken<String[][]>() {}.getType(); String[][] reels = gson.fromJson(jsonReels, reelsType); } }
两种方法效果完全一致,选你觉得顺手的就行,这样就能完美还原你最初的二维数组啦。
内容的提问来源于stack exchange,提问作者Shruti Gusain




