JSON字符串解析实践


点击标题下「蓝色微信名」可快速关注

很久没写代码了,最近有个小需求,需要解析一段字符串,数据比较地多,手工搞成本高,用程序解决,还是上策,由于是json的格式,解析起来可能更加便捷,有很多三方包,我采用的是org.json,maven配置如下,

<dependency>   <groupId>org.jsongroupId>   <artifactId>jsonartifactId>   <version>20210307version>dependency>

需要解析的字符串例子如下所示,

[{  "name": "Ronaldo",  "nationality": "Portugal",  "position": "forward"}, {  "name": "De Bruyne",  "nationality": "Belgium",  "position": "midfielder"}, {  "name": "de Ligt",  "nationality": "Netherlands",  "position": "defender"}]

代码其实很简单,由于是数组形式,需要用到遍历,解析出每个元素,再根据key得到value,按照要求打印,

public static void main(String[] args) {    String json = "[{\"name\":\"Ronaldo\",\"nationality\":\"Portugal\",\"position\":\"forward\"},{\"name\":\"De Bruyne\",\"nationality\":\"Belgium\",\"position\":\"midfielder\"},{\"name\":\"de Ligt\",\"nationality\":\"Netherlands\",\"position\":\"defender\"}]";    JSONArray jsonArray = new JSONArray(json);    for (int i = 0; i < jsonArray.length(); i++) {      JSONObject jsonObject = jsonArray.getJSONObject(i);      System.out.println(jsonObject.getString("name") + "|" + jsonObject.getString("nationality") + "|" + jsonObject.getString("position"));    }  }

输出如下内容,

Ronaldo|Portugal|forwardDe Bruyne|Belgium|midfielderde Ligt|Netherlands|defender

如下是JSON解析的整个过程,

针对不同的JSON,只需要根据相应的结构特点,设计解析逻辑,理解了这个原理,可以说大同小异。


如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,



近期更新的文章:
金融大模型应用的机遇与挑战
MySQL 5.7升级8.0的INT的显示问题场景
坐橐儿
中国队“自己的”世界杯
GOPS全球运维大会(北京站)

热文鉴赏:
你不知道的C罗-Siu庆祝动作
架构设计的15个关键概念
大阪环球影城避坑指南和功略
推荐一篇Oracle RAC Cache Fusion的经典论文
"红警"游戏开源代码带给我们的震撼

文章分类和索引:
公众号1500篇文章分类和索引

请使用浏览器的分享功能分享到微信等