"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无用
悬赏问题
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法