Scala中Json数据解析(net.minidev.json)

本文通过Scala示例展示了如何解析包含不同数据类型的JSON字符串,并演示了如何操作JSON对象及数组。涉及Scala中JSON的解析、修改及数据类型的转换。

解析json字符串中的类型对应如下:

json格式scala格式
整数java.lang.Integer
StringString
dictJSONObject
listJSONArray

测试代码如下:

import net.minidev.json.parser.JSONParser
import net.minidev.json.{JSONArray, JSONObject}
import scala.collection.JavaConversions._
    
object TestScala {
  def main(args: Array[String]): Unit = {

    var jsonParser = new JSONParser()
    var jsonData = jsonParser.parse("""{"_record_id":"00001", "inte": 100, "dicts": {"key1": "value1"},"lists": ["1", "2"]}""").asInstanceOf[JSONObject]
    for(key <- jsonData.keySet()){
      println("key:" + key + "\tkey_class:" + key.getClass + "\tvalue:" + jsonData.get(key) + "\tvalue_class:" + jsonData.get(key).getClass)
    }
    jsonData.put("new_integer", new Integer(10))
    println(jsonData)
        jsonData.put("new_integer", new Integer(10))
    val json = new JSONArray()
    json.add("province")
    json.add("province2")

    jsonData.put("test_list", json)

    val jsonO = new JSONObject
    jsonO.put("als", "res")
    jsonData.put("info", jsonO)

    if(jsonData.getOrElse("inte","").toString == "100"){
      println(jsonData.getOrElse("inte","").getClass)
    }

    println("inte: " + jsonData.getOrElse("inte", new Integer(99999)).asInstanceOf[Integer])
    println("new: "+ jsonData.getOrElse("new", new Integer(99999)).asInstanceOf[Integer])
    println(jsonData)
  }
}

得到结果为:

key:_record_id	key_class:class java.lang.String	value:00001	value_class:class java.lang.String
key:lists	key_class:class java.lang.String	value:["1","2"]	value_class:class net.minidev.json.JSONArray
key:inte	key_class:class java.lang.String	value:100	value_class:class java.lang.Integer
key:dicts	key_class:class java.lang.String	value:{"key1":"value1"}	value_class:class net.minidev.json.JSONObject
{"_record_id":"00001","lists":["1","2"],"inte":100,"new_integer":10,"dicts":{"key1":"value1"}}
class java.lang.Integer
inte: 100
new: 99999
{"_record_id":"00001","lists":["1","2"],"inte":100,"new_integer":10,"test_list":["province","province2"],"dicts":{"key1":"value1"},"info":{"als":"res"}}

"C:\Program Files\Java\jdk1.8.0_241\bin\java.exe" "-javaagent:D:\IntelliJ IDEA 2023.3.4\lib\idea_rt.jar=53481:D:\IntelliJ IDEA 2023.3.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_241\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_241\jre\lib\rt.jar;C:\Users\18795\IdeaProjects\demo11\target\classes;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-scala_2.12\1.14.0\flink-scala_2.12-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-core\1.14.0\flink-core-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-annotations\1.14.0\flink-annotations-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-metrics-core\1.14.0\flink-metrics-core-1.14.0.jar;D:\Maven安装包\Maven_Repository\com\esotericsoftware\kryo\kryo\2.24.0\kryo-2.24.0.jar;D:\Maven安装包\Maven_Repository\com\esotericsoftware\minlog\minlog\1.2\minlog-1.2.jar;D:\Maven安装包\Maven_Repository\org\objenesis\objenesis\2.1\objenesis-2.1.jar;D:\Maven安装包\Maven_Repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\Maven安装包\Maven_Repository\org\apache\commons\commons-compress\1.21\commons-compress-1.21.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-shaded-guava\30.1.1-jre-14.0\flink-shaded-guava-30.1.1-jre-14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-java\1.14.0\flink-java-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\commons\commons-math3\3.5\commons-math3-3.5.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-shaded-asm-7\7.1-14.0\flink-shaded-asm-7-7.1-14.0.jar;D:\Maven安装包\Maven_Repository\org\scala-lang\scala-reflect\2.12.7\scala-reflect-2.12.7.jar;D:\Maven安装包\Maven_Repository\org\scala-lang\scala-library\2.12.7\scala-library-2.12.7.jar;D:\Maven安装包\Maven_Repository\org\scala-lang\scala-compiler\2.12.7\scala-compiler-2.12.7.jar;D:\Maven安装包\Maven_Repository\org\scala-lang\modules\scala-xml_2.12\1.0.6\scala-xml_2.12-1.0.6.jar;D:\Maven安装包\Maven_Repository\com\twitter\chill_2.12\0.7.6\chill_2.12-0.7.6.jar;D:\Maven安装包\Maven_Repository\com\twitter\chill-java\0.7.6\chill-java-0.7.6.jar;D:\Maven安装包\Maven_Repository\org\slf4j\slf4j-api\1.7.15\slf4j-api-1.7.15.jar;D:\Maven安装包\Maven_Repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-shaded-force-shading\14.0\flink-shaded-force-shading-14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-streaming-scala_2.12\1.14.0\flink-streaming-scala_2.12-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-streaming-java_2.12\1.14.0\flink-streaming-java_2.12-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-file-sink-common\1.14.0\flink-file-sink-common-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-clients_2.12\1.14.0\flink-clients_2.12-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-runtime\1.14.0\flink-runtime-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-rpc-core\1.14.0\flink-rpc-core-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-rpc-akka-loader\1.14.0\flink-rpc-akka-loader-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-queryable-state-client-java\1.14.0\flink-queryable-state-client-java-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-hadoop-fs\1.14.0\flink-hadoop-fs-1.14.0.jar;D:\Maven安装包\Maven_Repository\commons-io\commons-io\2.8.0\commons-io-2.8.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-shaded-netty\4.1.65.Final-14.0\flink-shaded-netty-4.1.65.Final-14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-shaded-jackson\2.12.4-14.0\flink-shaded-jackson-2.12.4-14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-shaded-zookeeper-3\3.4.14-14.0\flink-shaded-zookeeper-3-3.4.14-14.0.jar;D:\Maven安装包\Maven_Repository\org\javassist\javassist\3.24.0-GA\javassist-3.24.0-GA.jar;D:\Maven安装包\Maven_Repository\org\xerial\snappy\snappy-java\1.1.8.3\snappy-java-1.1.8.3.jar;D:\Maven安装包\Maven_Repository\org\lz4\lz4-java\1.8.0\lz4-java-1.8.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-optimizer\1.14.0\flink-optimizer-1.14.0.jar;D:\Maven安装包\Maven_Repository\commons-cli\commons-cli\1.3.1\commons-cli-1.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-client\3.3.1\hadoop-client-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-common\3.3.1\hadoop-common-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\thirdparty\hadoop-shaded-protobuf_3_7\1.1.1\hadoop-shaded-protobuf_3_7-1.1.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\thirdparty\hadoop-shaded-guava\1.1.1\hadoop-shaded-guava-1.1.1.jar;D:\Maven安装包\Maven_Repository\com\google\guava\guava\27.0-jre\guava-27.0-jre.jar;D:\Maven安装包\Maven_Repository\com\google\guava\failureaccess\1.0\failureaccess-1.0.jar;D:\Maven安装包\Maven_Repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\Maven安装包\Maven_Repository\org\checkerframework\checker-qual\2.5.2\checker-qual-2.5.2.jar;D:\Maven安装包\Maven_Repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;D:\Maven安装包\Maven_Repository\org\codehaus\mojo\animal-sniffer-annotations\1.17\animal-sniffer-annotations-1.17.jar;D:\Maven安装包\Maven_Repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\Maven安装包\Maven_Repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-4.4.13.jar;D:\Maven安装包\Maven_Repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;D:\Maven安装包\Maven_Repository\commons-net\commons-net\3.6\commons-net-3.6.jar;D:\Maven安装包\Maven_Repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-servlet\9.4.40.v20210413\jetty-servlet-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-security\9.4.40.v20210413\jetty-security-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-util-ajax\9.4.40.v20210413\jetty-util-ajax-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-webapp\9.4.40.v20210413\jetty-webapp-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-xml\9.4.40.v20210413\jetty-xml-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;D:\Maven安装包\Maven_Repository\com\sun\jersey\jersey-servlet\1.19\jersey-servlet-1.19.jar;D:\Maven安装包\Maven_Repository\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;D:\Maven安装包\Maven_Repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;D:\Maven安装包\Maven_Repository\org\apache\commons\commons-configuration2\2.1.1\commons-configuration2-2.1.1.jar;D:\Maven安装包\Maven_Repository\org\apache\commons\commons-text\1.4\commons-text-1.4.jar;D:\Maven安装包\Maven_Repository\org\apache\avro\avro\1.7.7\avro-1.7.7.jar;D:\Maven安装包\Maven_Repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;D:\Maven安装包\Maven_Repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;D:\Maven安装包\Maven_Repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;D:\Maven安装包\Maven_Repository\com\google\re2j\re2j\1.1\re2j-1.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-auth\3.3.1\hadoop-auth-3.3.1.jar;D:\Maven安装包\Maven_Repository\com\nimbusds\nimbus-jose-jwt\9.8.1\nimbus-jose-jwt-9.8.1.jar;D:\Maven安装包\Maven_Repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;D:\Maven安装包\Maven_Repository\net\minidev\json-smart\2.4.2\json-smart-2.4.2.jar;D:\Maven安装包\Maven_Repository\net\minidev\accessors-smart\2.4.2\accessors-smart-2.4.2.jar;D:\Maven安装包\Maven_Repository\org\ow2\asm\asm\8.0.1\asm-8.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\curator\curator-framework\4.2.0\curator-framework-4.2.0.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-simplekdc\1.0.1\kerb-simplekdc-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-client\1.0.1\kerb-client-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerby-config\1.0.1\kerby-config-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-common\1.0.1\kerb-common-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-crypto\1.0.1\kerb-crypto-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-util\1.0.1\kerb-util-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\token-provider\1.0.1\token-provider-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-admin\1.0.1\kerb-admin-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-server\1.0.1\kerb-server-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-identity\1.0.1\kerb-identity-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerby-xdr\1.0.1\kerby-xdr-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\curator\curator-client\4.2.0\curator-client-4.2.0.jar;D:\Maven安装包\Maven_Repository\org\apache\curator\curator-recipes\4.2.0\curator-recipes-4.2.0.jar;D:\Maven安装包\Maven_Repository\org\apache\htrace\htrace-core4\4.1.0-incubating\htrace-core4-4.1.0-incubating.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerb-core\1.0.1\kerb-core-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerby-pkix\1.0.1\kerby-pkix-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerby-asn1\1.0.1\kerby-asn1-1.0.1.jar;D:\Maven安装包\Maven_Repository\org\apache\kerby\kerby-util\1.0.1\kerby-util-1.0.1.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\jackson\core\jackson-databind\2.10.5.1\jackson-databind-2.10.5.1.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\jackson\core\jackson-core\2.10.5\jackson-core-2.10.5.jar;D:\Maven安装包\Maven_Repository\org\codehaus\woodstox\stax2-api\4.2.1\stax2-api-4.2.1.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\woodstox\woodstox-core\5.3.0\woodstox-core-5.3.0.jar;D:\Maven安装包\Maven_Repository\dnsjava\dnsjava\2.1.7\dnsjava-2.1.7.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-hdfs-client\3.3.1\hadoop-hdfs-client-3.3.1.jar;D:\Maven安装包\Maven_Repository\com\squareup\okhttp\okhttp\2.7.5\okhttp-2.7.5.jar;D:\Maven安装包\Maven_Repository\com\squareup\okio\okio\1.6.0\okio-1.6.0.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\jackson\core\jackson-annotations\2.10.5\jackson-annotations-2.10.5.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-yarn-api\3.3.1\hadoop-yarn-api-3.3.1.jar;D:\Maven安装包\Maven_Repository\javax\xml\bind\jaxb-api\2.2.11\jaxb-api-2.2.11.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-yarn-client\3.3.1\hadoop-yarn-client-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\websocket\websocket-client\9.4.40.v20210413\websocket-client-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-client\9.4.40.v20210413\jetty-client-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-http\9.4.40.v20210413\jetty-http-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-util\9.4.40.v20210413\jetty-util-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\jetty-io\9.4.40.v20210413\jetty-io-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\websocket\websocket-common\9.4.40.v20210413\websocket-common-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\eclipse\jetty\websocket\websocket-api\9.4.40.v20210413\websocket-api-9.4.40.v20210413.jar;D:\Maven安装包\Maven_Repository\org\jline\jline\3.9.0\jline-3.9.0.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-mapreduce-client-core\3.3.1\hadoop-mapreduce-client-core-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-yarn-common\3.3.1\hadoop-yarn-common-3.3.1.jar;D:\Maven安装包\Maven_Repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;D:\Maven安装包\Maven_Repository\com\sun\jersey\jersey-core\1.19\jersey-core-1.19.jar;D:\Maven安装包\Maven_Repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;D:\Maven安装包\Maven_Repository\com\sun\jersey\jersey-client\1.19\jersey-client-1.19.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.10.5\jackson-module-jaxb-annotations-2.10.5.jar;D:\Maven安装包\Maven_Repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.5\jackson-jaxrs-json-provider-2.10.5.jar;D:\Maven安装包\Maven_Repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.5\jackson-jaxrs-base-2.10.5.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\3.3.1\hadoop-mapreduce-client-jobclient-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-mapreduce-client-common\3.3.1\hadoop-mapreduce-client-common-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\hadoop\hadoop-annotations\3.3.1\hadoop-annotations-3.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-connector-kafka_2.12\1.14.0\flink-connector-kafka_2.12-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-connector-base\1.14.0\flink-connector-base-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\kafka\kafka-clients\2.4.1\kafka-clients-2.4.1.jar;D:\Maven安装包\Maven_Repository\com\github\luben\zstd-jni\1.4.3-1\zstd-jni-1.4.3-1.jar;D:\Maven安装包\Maven_Repository\redis\clients\jedis\4.3.1\jedis-4.3.1.jar;D:\Maven安装包\Maven_Repository\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\Maven安装包\Maven_Repository\org\json\json\20220320\json-20220320.jar;D:\Maven安装包\Maven_Repository\com\google\code\gson\gson\2.8.9\gson-2.8.9.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-json\1.14.0\flink-json-1.14.0.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-connector-redis_2.11\1.1.5\flink-connector-redis_2.11-1.1.5.jar;D:\Maven安装包\Maven_Repository\org\apache\commons\commons-lang3\3.3.2\commons-lang3-3.3.2.jar;D:\Maven安装包\Maven_Repository\org\slf4j\slf4j-log4j12\1.7.7\slf4j-log4j12-1.7.7.jar;D:\Maven安装包\Maven_Repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\force-shading\1.1.5\force-shading-1.1.5.jar;D:\Maven安装包\Maven_Repository\org\apache\flink\flink-connector-jdbc_2.12\1.14.0\flink-connector-jdbc_2.12-1.14.0.jar;D:\Maven安装包\Maven_Repository\com\h2database\h2\1.4.200\h2-1.4.200.jar;D:\Maven安装包\Maven_Repository\mysql\mysql-connector-java\8.0.26\mysql-connector-java-8.0.26.jar;D:\Maven安装包\Maven_Repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar;D:\Maven安装包\Maven_Repository\org\slf4j\slf4j-simple\1.7.36\slf4j-simple-1.7.36.jar" FlinkWriteToMySQL SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/Maven%e5%ae%89%e8%a3%85%e5%8c%85/Maven_Repository/org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/Maven%e5%ae%89%e8%a3%85%e5%8c%85/Maven_Repository/org/slf4j/slf4j-simple/1.7.36/slf4j-simple-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] log4j:WARN No appenders could be found for logger (org.apache.flink.api.java.ClosureCleaner). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: Job execution failed. at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:144) at org.apache.flink.runtime.minicluster.MiniClusterJobClient.lambda$getJobExecutionResult$3(MiniClusterJobClient.java:137) at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:591) at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) at org.apache.flink.runtime.rpc.akka.AkkaInvocationHandler.lambda$invokeRpc$0(AkkaInvocationHandler.java:250) at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) at org.apache.flink.util.concurrent.FutureUtils.doForward(FutureUtils.java:1389) at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$null$1(ClassLoadingUtils.java:93) at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68) at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$guardCompletionWithContextClassLoader$2(ClassLoadingUtils.java:92) at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) at org.apache.flink.runtime.concurrent.akka.AkkaFutureUtils$1.onComplete(AkkaFutureUtils.java:47) at akka.dispatch.OnComplete.internal(Future.scala:300) at akka.dispatch.OnComplete.internal(Future.scala:297) at akka.dispatch.japi$CallbackBridge.apply(Future.scala:224) at akka.dispatch.japi$CallbackBridge.apply(Future.scala:221) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60) at org.apache.flink.runtime.concurrent.akka.AkkaFutureUtils$DirectExecutionContext.execute(AkkaFutureUtils.java:65) at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:68) at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1(Promise.scala:284) at scala.concurrent.impl.Promise$DefaultPromise.$anonfun$tryComplete$1$adapted(Promise.scala:284) at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:284) at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:621) at akka.pattern.PipeToSupport$PipeableFuture$$anonfun$pipeTo$1.applyOrElse(PipeToSupport.scala:24) at akka.pattern.PipeToSupport$PipeableFuture$$anonfun$pipeTo$1.applyOrElse(PipeToSupport.scala:23) at scala.concurrent.Future.$anonfun$andThen$1(Future.scala:532) at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29) at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60) at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:63) at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:100) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81) at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:100) at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:49) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:48) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) Caused by: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.handleFailure(ExecutionFailureHandler.java:138) at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.getFailureHandlingResult(ExecutionFailureHandler.java:82) at org.apache.flink.runtime.scheduler.DefaultScheduler.handleTaskFailure(DefaultScheduler.java:228) at org.apache.flink.runtime.scheduler.DefaultScheduler.maybeHandleTaskFailure(DefaultScheduler.java:218) at org.apache.flink.runtime.scheduler.DefaultScheduler.updateTaskExecutionStateInternal(DefaultScheduler.java:209) at org.apache.flink.runtime.scheduler.SchedulerBase.updateTaskExecutionState(SchedulerBase.java:679) at org.apache.flink.runtime.scheduler.SchedulerNG.updateTaskExecutionState(SchedulerNG.java:79) at org.apache.flink.runtime.jobmaster.JobMaster.updateTaskExecutionState(JobMaster.java:444) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.lambda$handleRpcInvocation$1(AkkaRpcActor.java:316) at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:83) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcInvocation(AkkaRpcActor.java:314) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:217) at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:78) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleMessage(AkkaRpcActor.java:163) at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24) at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20) at scala.PartialFunction.applyOrElse(PartialFunction.scala:123) at scala.PartialFunction.applyOrElse$(PartialFunction.scala:122) at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:20) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:172) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:172) at akka.actor.Actor.aroundReceive(Actor.scala:537) at akka.actor.Actor.aroundReceive$(Actor.scala:535) at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:220) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:580) at akka.actor.ActorCell.invoke(ActorCell.scala:548) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270) at akka.dispatch.Mailbox.run(Mailbox.scala:231) at akka.dispatch.Mailbox.exec(Mailbox.scala:243) ... 4 more Caused by: java.io.IOException: unable to open JDBC writer at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.open(JdbcOutputFormat.java:144) at org.apache.flink.connector.jdbc.internal.GenericJdbcSinkFunction.open(GenericJdbcSinkFunction.java:52) at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:34) at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:100) at org.apache.flink.streaming.api.operators.StreamSink.open(StreamSink.java:46) at org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.initializeStateAndOpenOperators(RegularOperatorChain.java:110) at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreGates(StreamTask.java:711) at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$SynchronizedStreamTaskActionExecutor.call(StreamTaskActionExecutor.java:100) at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:687) at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:654) at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:958) at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:927) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:766) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:575) at java.lang.Thread.run(Thread.java:748) Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) at org.apache.flink.connector.jdbc.internal.connection.SimpleJdbcConnectionProvider.getOrEstablishConnection(SimpleJdbcConnectionProvider.java:121) at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.open(JdbcOutputFormat.java:142) ... 14 more Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:89) at com.mysql.cj.NativeSession.connect(NativeSession.java:119) at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:948) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:818) ... 19 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:606) at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:156) at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63) ... 22 more 进程已结束,退出代码为 1 还是错误的
09-20
root@pwj:/opt/project/test_1# mvn clean package -U [INFO] Scanning for projects... [INFO] [INFO] -----------------------< org.example:scala_test >----------------------- [INFO] Building scala_test 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- Downloading from apache-hbase: https://repository.apache.org/content/repositories/releases/net/minidev/json-smart/maven-metadata.xml Downloading from alimaven: https://maven.aliyun.com/repository/public/net/minidev/json-smart/maven-metadata.xml Downloading from cloudera-repos: https://repository.cloudera.com/artifactory/cloudera-repos/net/minidev/json-smart/maven-metadata.xml Downloading from aliyun-public: https://maven.aliyun.com/repository/public/net/minidev/json-smart/maven-metadata.xml Downloaded from aliyun-public: https://maven.aliyun.com/repository/public/net/minidev/json-smart/maven-metadata.xml (1.4 kB at 7.3 kB/s) Downloaded from alimaven: https://maven.aliyun.com/repository/public/net/minidev/json-smart/maven-metadata.xml (1.4 kB at 7.3 kB/s) Downloading from maven-central-mirror: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml Downloading from aliyun-spring: https://maven.aliyun.com/repository/spring/net/minidev/json-smart/maven-metadata.xml [WARNING] Checksum validation failed, expected <!doctype but is b912a31b6985bf6264b5e9525a859606934851b3 from aliyun-spring for https://maven.aliyun.com/repository/spring/net/minidev/json-smart/maven-metadata.xml [WARNING] Could not validate integrity of download from https://maven.aliyun.com/repository/spring/net/minidev/json-smart/maven-metadata.xml: Checksum validation failed, expected <!doctype but is b912a31b6985bf6264b5e9525a859606934851b3 [WARNING] Checksum validation failed, expected <!doctype but is b912a31b6985bf6264b5e9525a859606934851b3 from aliyun-spring for https://maven.aliyun.com/repository/spring/net/minidev/json-smart/maven-metadata.xml Downloaded from aliyun-spring: https://maven.aliyun.com/repository/spring/net/minidev/json-smart/maven-metadata.xml (159 kB at 1.1 MB/s) Downloading from apache.snapshots: https://repository.apache.org/snapshots/net/minidev/json-smart/maven-metadata.xml Downloading from dynamodb-local-oregon: https://s3-us-west-2.amazonaws.com/dynamodb-local/release/net/minidev/json-smart/maven-metadata.xml Downloading from apache.snapshots.https: https://repository.apache.org/content/repositories/snapshots/net/minidev/json-smart/maven-metadata.xml Downloaded from cloudera-repos: https://repository.cloudera.com/artifactory/cloudera-repos/net/minidev/json-smart/maven-metadata.xml (1.4 kB at 869 B/s) Downloading from repository.jboss.org: https://repository.jboss.org/nexus/content/groups/public/net/minidev/json-smart/maven-metadata.xml Downloaded from maven-central-mirror: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml (1.4 kB at 735 B/s) [WARNING] The metadata /root/.m2/repository/net/minidev/json-smart/maven-metadata-aliyun-spring.xml is invalid: unexpected markup <!d (position: START_DOCUMENT seen \n<!d... @2:4) Downloading from alimaven: https://maven.aliyun.com/repository/public/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.pom Downloading from aliyun-public: https://maven.aliyun.com/repository/public/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.pom Downloading from apache-hbase: https://repository.apache.org/content/repositories/releases/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.pom Downloading from cloudera-repos: https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.pom Downloading from aliyun-spring: https://maven.aliyun.com/repository/spring/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.pom Downloading from maven-central-mirror: https://repo.maven.apache.org/maven2/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.pom [WARNING] The POM for org.apache.bahir:flink-connector-redis_2.12:jar:1.1.1 is missing, no dependency information available Downloading from alimaven: https://maven.aliyun.com/repository/public/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.jar Downloading from aliyun-public: https://maven.aliyun.com/repository/public/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.jar Downloading from apache-hbase: https://repository.apache.org/content/repositories/releases/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.jar Downloading from cloudera-repos: https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.jar Downloading from aliyun-spring: https://maven.aliyun.com/repository/spring/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.jar Downloading from maven-central-mirror: https://repo.maven.apache.org/maven2/org/apache/bahir/flink-connector-redis_2.12/1.1.1/flink-connector-redis_2.12-1.1.1.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.924 s [INFO] Finished at: 2025-09-25T10:02:06+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project scala_test: Could not resolve dependencies for project org.example:scala_test:jar:1.0-SNAPSHOT: Could not find artifact org.apache.bahir:flink-connector-redis_2.12:jar:1.1.1 in alimaven (https://maven.aliyun.com/repository/public) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException root@pwj:/opt/project/test_1# Could not find artifact org.apache.bahir:flink-connector-redis_2.12:pom:1.1.1 in alimaven (https://maven.aliyun.com/repository/public)
最新发布
09-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值