Json串的解析—將Json資料歸納格式
阿新 • • 發佈:2018-11-20
Json串如下所示
{ "dataId": 123, "dataType": "mysql", "resultData": [{ "binlog": "mysql_binlog.000", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "7" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "7" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "7" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "7" }], "db": "demo", "eventType": "insert", "pkValue": "7", "sql": "woshisql", "table": "student", "time": 80146942099474 }, { "binlog": "mysql_binlog.001", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "9" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "9" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "9" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "9" }], "db": "demo", "eventType": "insert", "pkValue": "9", "sql": "woshisql", "table": "student", "time": 80146943574276 }, { "binlog": "mysql_binlog.002", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "2" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "2" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "2" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "2" }], "db": "demo", "eventType": "update", "pkValue": "2", "sql": "woshisql", "table": "student", "time": 80146943586222 }, { "binlog": "mysql_binlog.003", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "4" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "4" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "4" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "4" }], "db": "demo", "eventType": "update", "pkValue": "4", "sql": "woshisql", "table": "student", "time": 80146943592561 }, { "binlog": "mysql_binlog.004", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "6" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "6" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "6" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "6" }], "db": "demo", "eventType": "update", "pkValue": "6", "sql": "woshisql", "table": "student", "time": 80146943599876 }, { "binlog": "mysql_binlog.005", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "4" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "4" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "4" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "4" }], "db": "demo", "eventType": "update", "pkValue": "4", "sql": "woshisql", "table": "student", "time": 80146943605971 }, { "binlog": "mysql_binlog.006", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "6" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "6" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "6" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "6" }], "db": "demo", "eventType": "update", "pkValue": "6", "sql": "woshisql", "table": "student", "time": 80146943611335 }, { "binlog": "mysql_binlog.007", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "9" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "9" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "9" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "9" }], "db": "demo", "eventType": "update", "pkValue": "9", "sql": "woshisql", "table": "student", "time": 80146943617917 }, { "binlog": "mysql_binlog.008", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "10" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "10" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "10" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "10" }], "db": "demo", "eventType": "update", "pkValue": "10", "sql": "woshisql", "table": "student", "time": 80146943623525 }, { "binlog": "mysql_binlog.009", "column": [{ "columnname": "single_cloum0", "columntype": "varchar(10)", "index": 0, "modified": false, "pk": false, "sqlType": 0, "value": "1" }, { "columnname": "single_cloum1", "columntype": "varchar(10)", "index": 1, "modified": false, "pk": false, "sqlType": 0, "value": "1" }, { "columnname": "single_cloum2", "columntype": "int(5)", "index": 2, "modified": false, "pk": false, "sqlType": 0, "value": "1" }, { "columnname": "single_cloum3", "columntype": "int(5)", "index": 3, "modified": false, "pk": false, "sqlType": 0, "value": "1" }], "db": "demo", "eventType": "update", "pkValue": "1", "sql": "woshisql", "table": "student", "time": 80146943629864 }] }
我們需要將json資料歸納格式:
1、按照dataType,分類file,mysql。
2、按照pkValue分類。
3、按照eventType型別分類。
先來看第一個要求 :按照dataType 分類file,mysql。直接getString(“dataType”)完事
再來看第二個要求:需要按照pkValue分類
這裡我使用的是alibaba的很強大的Json解析工具 pom 配置如下
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.36</version> </dependency>
程式碼如下
import com.alibaba.fastjson.{JSON, JSONObject} object JsonPar { def main(args: Array[String]): Unit = { //{"dataId":123,"dataType":"mysql","resultData":[{"binlog":"mysql_binlog.000","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"7"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"7"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"7"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"7"}],"db":"demo","eventType":"insert","pkValue":"7","sql":"woshisql","table":"student","time":80146942099474},{"binlog":"mysql_binlog.001","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"9"}],"db":"demo","eventType":"insert","pkValue":"9","sql":"woshisql","table":"student","time":80146943574276},{"binlog":"mysql_binlog.002","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"2"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"2"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"2"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"2"}],"db":"demo","eventType":"update","pkValue":"2","sql":"woshisql","table":"student","time":80146943586222},{"binlog":"mysql_binlog.003","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"4"}],"db":"demo","eventType":"update","pkValue":"4","sql":"woshisql","table":"student","time":80146943592561},{"binlog":"mysql_binlog.004","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"6"}],"db":"demo","eventType":"update","pkValue":"6","sql":"woshisql","table":"student","time":80146943599876},{"binlog":"mysql_binlog.005","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"4"}],"db":"demo","eventType":"update","pkValue":"4","sql":"woshisql","table":"student","time":80146943605971},{"binlog":"mysql_binlog.006","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"6"}],"db":"demo","eventType":"update","pkValue":"6","sql":"woshisql","table":"student","time":80146943611335},{"binlog":"mysql_binlog.007","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"9"}],"db":"demo","eventType":"update","pkValue":"9","sql":"woshisql","table":"student","time":80146943617917},{"binlog":"mysql_binlog.008","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"10"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"10"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"10"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"10"}],"db":"demo","eventType":"update","pkValue":"10","sql":"woshisql","table":"student","time":80146943623525},{"binlog":"mysql_binlog.009","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"1"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"1"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"1"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"1"}],"db":"demo","eventType":"update","pkValue":"1","sql":"woshisql","table":"student","time":80146943629864}]} val jsonObj: JSONObject = JSON.parseObject("{\"dataId\":123,\"dataType\":\"mysql\",\"resultData\":[{\"binlog\":\"mysql_binlog.000\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"}],\"db\":\"demo\",\"eventType\":\"insert\",\"pkValue\":\"7\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146942099474},{\"binlog\":\"mysql_binlog.001\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"}],\"db\":\"demo\",\"eventType\":\"insert\",\"pkValue\":\"9\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943574276},{\"binlog\":\"mysql_binlog.002\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"2\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943586222},{\"binlog\":\"mysql_binlog.003\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"4\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943592561},{\"binlog\":\"mysql_binlog.004\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"6\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943599876},{\"binlog\":\"mysql_binlog.005\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"4\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943605971},{\"binlog\":\"mysql_binlog.006\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"6\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943611335},{\"binlog\":\"mysql_binlog.007\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"9\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943617917},{\"binlog\":\"mysql_binlog.008\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"10\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943623525},{\"binlog\":\"mysql_binlog.009\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"1\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943629864}]}") val array = jsonObj.getJSONArray("resultData") for (i <- 0 to array.size() - 1) { val nObject = array.getJSONObject(i) println(nObject.getString("pkValue")) println(nObject.getString("eventType")) } } }
第三個要求其實和第二個是一樣的,都是通過每個子json串獲取key
如果還有別的需求 比如獲得每個子Json串的裡面的子Json串某個型別,像按照 “sqlType” , “pk” ,"value"等型別進行分類 就只需寫一個雙重迴圈就可以搞定
程式碼如下
import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}
object JsonPar {
def main(args: Array[String]): Unit = {
//{"dataId":123,"dataType":"mysql","resultData":[{"binlog":"mysql_binlog.000","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"7"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"7"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"7"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"7"}],"db":"demo","eventType":"insert","pkValue":"7","sql":"woshisql","table":"student","time":80146942099474},{"binlog":"mysql_binlog.001","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"9"}],"db":"demo","eventType":"insert","pkValue":"9","sql":"woshisql","table":"student","time":80146943574276},{"binlog":"mysql_binlog.002","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"2"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"2"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"2"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"2"}],"db":"demo","eventType":"update","pkValue":"2","sql":"woshisql","table":"student","time":80146943586222},{"binlog":"mysql_binlog.003","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"4"}],"db":"demo","eventType":"update","pkValue":"4","sql":"woshisql","table":"student","time":80146943592561},{"binlog":"mysql_binlog.004","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"6"}],"db":"demo","eventType":"update","pkValue":"6","sql":"woshisql","table":"student","time":80146943599876},{"binlog":"mysql_binlog.005","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"4"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"4"}],"db":"demo","eventType":"update","pkValue":"4","sql":"woshisql","table":"student","time":80146943605971},{"binlog":"mysql_binlog.006","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"6"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"6"}],"db":"demo","eventType":"update","pkValue":"6","sql":"woshisql","table":"student","time":80146943611335},{"binlog":"mysql_binlog.007","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"9"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"9"}],"db":"demo","eventType":"update","pkValue":"9","sql":"woshisql","table":"student","time":80146943617917},{"binlog":"mysql_binlog.008","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"10"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"10"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"10"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"10"}],"db":"demo","eventType":"update","pkValue":"10","sql":"woshisql","table":"student","time":80146943623525},{"binlog":"mysql_binlog.009","column":[{"columnname":"single_cloum0","columntype":"varchar(10)","index":0,"modified":false,"pk":false,"sqlType":0,"value":"1"},{"columnname":"single_cloum1","columntype":"varchar(10)","index":1,"modified":false,"pk":false,"sqlType":0,"value":"1"},{"columnname":"single_cloum2","columntype":"int(5)","index":2,"modified":false,"pk":false,"sqlType":0,"value":"1"},{"columnname":"single_cloum3","columntype":"int(5)","index":3,"modified":false,"pk":false,"sqlType":0,"value":"1"}],"db":"demo","eventType":"update","pkValue":"1","sql":"woshisql","table":"student","time":80146943629864}]}
val jsonObj: JSONObject = JSON.parseObject("{\"dataId\":123,\"dataType\":\"mysql\",\"resultData\":[{\"binlog\":\"mysql_binlog.000\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"7\"}],\"db\":\"demo\",\"eventType\":\"insert\",\"pkValue\":\"7\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146942099474},{\"binlog\":\"mysql_binlog.001\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"}],\"db\":\"demo\",\"eventType\":\"insert\",\"pkValue\":\"9\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943574276},{\"binlog\":\"mysql_binlog.002\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"2\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"2\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943586222},{\"binlog\":\"mysql_binlog.003\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"4\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943592561},{\"binlog\":\"mysql_binlog.004\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"6\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943599876},{\"binlog\":\"mysql_binlog.005\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"4\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"4\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943605971},{\"binlog\":\"mysql_binlog.006\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"6\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"6\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943611335},{\"binlog\":\"mysql_binlog.007\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"9\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"9\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943617917},{\"binlog\":\"mysql_binlog.008\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"10\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"10\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943623525},{\"binlog\":\"mysql_binlog.009\",\"column\":[{\"columnname\":\"single_cloum0\",\"columntype\":\"varchar(10)\",\"index\":0,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"},{\"columnname\":\"single_cloum1\",\"columntype\":\"varchar(10)\",\"index\":1,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"},{\"columnname\":\"single_cloum2\",\"columntype\":\"int(5)\",\"index\":2,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"},{\"columnname\":\"single_cloum3\",\"columntype\":\"int(5)\",\"index\":3,\"modified\":false,\"pk\":false,\"sqlType\":0,\"value\":\"1\"}],\"db\":\"demo\",\"eventType\":\"update\",\"pkValue\":\"1\",\"sql\":\"woshisql\",\"table\":\"student\",\"time\":80146943629864}]}")
val array = jsonObj.getJSONArray("resultData")
for (i <- 0 to array.size() - 1) {
val nObject: JSONObject = array.getJSONObject(i)
val nArray: JSONArray = JSON.parseArray(nObject.getString("column"))
for (j <- 0 to nArray.size() - 1) {
val nObject1 = nArray.getJSONObject(j)
println(nObject1.getString("sqlType"))
println(nObject1.getString("pk"))
println(nObject1.getString("value"))
}
}
}
}
結果出來後就可以將其歸納整理了 以上如有錯誤或不足的地方歡迎各路大佬批評指正 !