"tx":"[["49","54","2.10","12"],["3","2","2.10","1"]]"这种结构如何解析呢,我试了很多办法都不行
我想要的是结果是这样:
String xx1=49
String xx2=54
String xx3=2.10
String xx4=12
!!!
如何解析数组字符串,
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
m0_54204465 2023-01-10 20:43关注在 Java 中,可以使用 JSON 库来解析字符串数组。Jackson 是一个非常常用的 JSON 库,可以很方便地将 JSON 字符串转换为 Java 对象。
首先需要安装 Jackson 的依赖,如下:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.0</version> </dependency>然后可以通过如下代码来解析 JSON 字符串数组
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; String jsonString = "{\"tx\":[[\"49\",\"54\",\"2.10\",\"12\"],[\"3\",\"2\",\"2.10\",\"1\"]]}"; ObjectMapper mapper = new ObjectMapper(); JsonNode rootNode = mapper.readTree(jsonString); JsonNode txNode = rootNode.path("tx"); for (int i = 0; i < txNode.size(); i++) { JsonNode innerNode = txNode.get(i); String xx1 = innerNode.get(0).asText(); String xx2 = innerNode.get(1).asText(); String xx3 = innerNode.get(2).asText(); String xx4 = innerNode.get(3).asText(); System.out.println(xx1+","+xx2+","+xx3+","+xx4); }第一行是JSON字符串,后面的代码中通过ObjectMapper将字符串解析为 JsonNode, 然后通过循环遍历 txNode 获取每个内部节点,使用innerNode.get(i).asText()来获取对应的值,最后打印出来
PS:如果需要更具体的数据类型转换可以通过
innerNode.get(i).asDouble(), innerNode.get(i).asInt()等函数来进行转换,转换为对应的数字类型。另外, 如果你需要使用更高级的 JSON 功能,可以使用 Gson 库,它支持将 JSON 字符串转换为 Java 对象,并支持自动将对象转换为 JSON 字符串。
首先需要添加 gson 依赖
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>然后你可以使用 Gson 来将 JSON 字符串转换为 Java 对象
import com.google.gson.Gson; String jsonString = "{\"tx\":[[\"49\",\"54\",\"2.10\",\"12\"],[\"3\",\"2\",\"2.10\",\"1\"]]}"; Gson gson = new Gson(); JsonNode jsonNode = gson.fromJson(jsonString, JsonNode.class); JsonNode txNode = jsonNode.get("tx"); for (int i = 0; i < txNode.size(); i++) { JsonNode innerNode = txNode.get(i); String xx1 = innerNode.get(0).asText(); String xx2 = innerNode.get(1).asText(); String xx3 = innerNode.get(2).asText(); String xx4 = innerNode.get(3).asText(); System.out.println(xx1+","+xx2+","+xx3+","+xx4); }解析方法类似,只是使用 Gson来解析Json字符串。
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用