很久没写代码了,最近有个小需求,需要解析一段字符串,数据比较地多,手工搞成本高,用程序解决,还是上策,由于是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,只需要根据相应的结构特点,设计解析逻辑,理解了这个原理,可以说大同小异。
如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,
