1. 程式人生 > >Json串的解析—將Json資料歸納格式

Json串的解析—將Json資料歸納格式

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"))
      }
    }
  }

}



結果出來後就可以將其歸納整理了 以上如有錯誤或不足的地方歡迎各路大佬批評指正 !