json数组类型的处理

数据

{
   "data": [{
      "账号信息": "【等级73 1-10级 无QQ好友】便宜出 ",
      "售价": "¥ 140.00",
      "热度": 112,
      "发布时间": "2022-04-23 14:01:36.766",
      "标题": "穿越火线CF\/电信区\/湖南电信一区",
      "图片数量": "2图"
   }]

}

处理结果 (写入到MySQL  要注意 def 这个方法卸载 def main  的下面  object  的里面)

/**
 * @author jiasongfan
 * @date 2022/7/8
 * @apiNote
 */

import com.alibaba.fastjson.{JSON, JSONArray}
import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.api.windowing.time.Time

import java.sql.{Connection, DriverManager, PreparedStatement}
import scala.beans.BeanProperty
import scala.io.Source
object Test01 {
  def main(args: Array[String]): Unit = {
  //  val env = StreamExecutionEnvironment.getExecutionEnvironment
   // env.setParallelism(1)
    val strings: Iterator[String] = Source.fromFile("D:\\E\\month9class\\day7-8-1\\flink_test\\data\\data.txt").getLines()
    var str=""
    for (elem <- strings) {
      str+=elem
    }
    val data1: data = JSON.parseObject(str, classOf[data])
    val list: List[sj] = data1.getData.toList
    for (elem <- list) {
   //   println(elem)
    saveToMysql(elem)
    }
  }
  def saveToMysql(elem:sj):Unit={
    Class.forName("com.mysql.jdbc.Driver")
    val conn: Connection = DriverManager.getConnection("jdbc:mysql://hdp1:3306/1912b?characterEncoding=utf8", "root", "root")
    val ps: PreparedStatement = conn.prepareStatement("insert into t_bb values (?,?,?,?,?,?)")
    ps.setString(1,elem.账号信息)
    ps.setString(2,elem.售价)
    ps.setString(3,elem.热度)
    ps.setString(4,elem.发布时间)
    ps.setString(5,elem.标题)
    ps.setString(6,elem.图片数量)
    ps.executeUpdate()
    ps.close()
    conn.close()
  }
}



case class data(@BeanProperty data:Array[sj])
case class sj(@BeanProperty 账号信息:String,@BeanProperty 售价:String,@BeanProperty 热度:String,
              @BeanProperty 发布时间:String,@BeanProperty 标题:String,@BeanProperty 图片数量:String)

如果出现表情 的解决办法


进入mysql 
输入 mysql -uroot -proot

show variables like 'charact%';

需要修改12356 
使用set = utf8mb4
jdbc:mysql://hdp1:3306/1912b?characterEncoding=utf8
&connectionCollation=utf8mb4_general_ci 
两者之间无空格
mysql> set character_set_connection =utf8mb4
    -> ;


mysql> set character_set_database =utf8mb4
    -> ;


mysql> set character_set_results =utf8mb4;


mysql> set character_set_server =utf8mb4;


mysql> set character_set_system  =utf8mb4;
 

终极办法   trycatch

//      try {
//        saveToMysql(elem)
//      } catch {
//        case  a: Exception=>print(a)
//      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值