对于如何用Java嵌入式脚本快速解析多层json,相信很多没有经验的人都是一窍不通的。为此,本文总结了问题产生的原因和解决方法,希望大家可以通过这篇文章来解决这个问题。
有很多关于Json处理的开源包,比如json-lib、jackson、Gson和Fastjson。Gson是谷歌做的,功能强大;Fastjson是阿里巴巴做的,性能很快。用哪一个,只要你开心就好。
解析Json一般是为了重新计算。这些常见的开源包大多为读取和解析Json提供了丰富的接口。但如何将多层Json数据过滤、深度计算、扩展为二维数据用于其他服务,仍然需要复杂的硬编码,一般需要关系数据库的帮助(创建临时表、解析入库,然后使用SQL进行二次操作等)。).当这些步骤完成后,开发人员需要头疼。
比如处理这样一个场景:订单信息的Json数据分为两层:第一层是国家和地区,第二层是详细数据。现在想了解一下2013年华北地区的订单情况。
一些源数据如下:
[{'COUNTRY':'China ',' AREA': '东北',' ORDERS':[
{'ORDER_ID':10252,' CUSTOMER_ID':'SUPRD ',' EMPLOYEE_ID':4,…},
{ '订单标识' :10318,'客户标识' :'ISLAT ','员工标识' :8,…},
…]},
{'COUNTRY':'China ',' AREA': '华东',' ORDERS':[
{'ORDER_ID':10249,' CUSTOMER_ID':'TOMSP ',' EMPLOYEE_ID':6,…},
{'ORDER_ID':10251,' CUSTOMER_ID':'VICTE ',' EMPLOYEE_ID':3,…},
…]},
…]
期待Json结构化和过滤的效果:
COUNTRY
AREA
ORDER_ID
CUSTOMER_ID
EMPLOYEE_ID
ORDER_DATE
中国
华北
10402
ERNSH
八
2013-01-02
中国
华北
10403
ERNSH
四
2013-01-03
中国
华北
10404
MAGAA
2
2013-01-03
中国
华北
10407
OTTIK
2
2013-01-07
Java解析代码的一部分应该编写如下:
.
JSON object JSON object=JSON object . from object(order str);
JSON array JSON array=JSON object . getjson array(' COUNTRY ');
.
JSONArray two=JSONArray . getjsonarray(' ORDERS ');
JSONObject two=null
ListMapString,String list=new ArrayListMapString,String();
for(int I=0;I two . size();I){ 0
two=two . Getjsonobject(I);
MapString,String map=new HashMapString,String();
.
list . add(map);
}
.
如果有set运算符,那么Json解析将会简单得多。它不仅两次封装了Json类库,而且实现同样的算法所需的代码更少。而且在集合操作领域精心设计了一套函数库来应对各种结构化操作,不再需要安装配置第三方数据库软件。例如,从解析到过滤,只需要4行就可以完成:
A
一个
=json(文件(' orders.json ')。read())
2
=a1 . select(COUNTRY==' China ' area . contain('华北')
三
=A2 . news(ORDERS;国家,地区,${B1。ORDERS.fname()。concat@c()})
四
=A3.select(年份(ORDER_DATE)==2013)
看完以上内容,你掌握了如何用Java嵌入式脚本快速解析多层json了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/131712.html