var li = List(
"{\"name\":\"张三\",\"age\":30,\"addr\":\"北京\"}",
"{\"name\":\"李四\",\"age\":30,\"addr\":\"北京\"}",
"{\"name\":\"王五\", age:30,\"addr\":\"北京\"}",
"{\"name\":\"赵六\",\"age\":30,\"addr\":\"北京\"",
"{\"name\":\"田七\",\"age\":30,\"addr\":\"北京\"}",
"{\"name\":\"乔巴\",\"age\":,\"addr\":\"北京\"}"
)
for(s <- li){ var obj = JSON.parseFull(s) // 将错误数据过滤掉 if(obj != None){ var o = obj.get //获取值,转换成Map类型 var m = o.asInstanceOf[Map[String,String]] println(m) println(m.get("name")) } }
for(s <- li){ var obj:Student = null try { obj = JSON.parseObject(s, classOf[Student]) }catch { case e:Exception => } if(obj != null){ println(obj) } }
// 错误数据
var li2 = List(
"[{\"name\":\"张三\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"李四\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"王五\", age:30,\"addr\":\"北京\"},",
"{\"name\":\"赵六\",\"age\":30,\"addr\":\"北京\",",
"{\"name\":\"田七\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"乔巴\",\"age\":,\"addr\":\"北京\"}]"
)
// 正常数据
var li3 = List(
"[{\"name\":\"张三\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"李四\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"王五\", \"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"赵六\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"田七\",\"age\":30,\"addr\":\"北京\"},",
"{\"name\":\"乔巴\",\"age\":8,\"addr\":\"北京\"}]"
)
// ============================正常数据============================ var str = li3.mkString //解析json字符串 var obj = JSON.parseFull(str) // 转换成对象 var list = obj.get.asInstanceOf[List[Map[String,String]]] for (i<-list){ println(i) } //====================错误的数据========================== // ==============如果数据是一行一个对象的 /*// 循环遍历集合 for(s <- li2){ //替换掉[,去掉最后一个符号 var ss = s.replace("["," ").substring(0,s.length-1) var obj = JSON.parseFull(ss) if(obj!=None){ var m =obj.get.asInstanceOf[Map[String,String]] println(m) } }*/ // ==============如果所有的数据都在一行中 //var str = li2.mkString //替换对象和对象中间的逗号 //var str2 = str.replaceAll("},\\{", "}==={").replaceAll("},", "}===").replaceAll(",\\{", "==={") // 去掉收尾的中括号 //var str3 = str2.replaceAll("\\[","").replace("]","") //切分数据 //var arr = str3.split("===") /*for(ss <- arr){ var obj = JSON.parseFull(ss) if(obj!=None){ var m =obj.get.asInstanceOf[Map[String,String]] println(m) } }*/
// ============================正常数据============================ /* var str = li3.mkString var list = JSON.parseArray(str,classOf[Student]) println(list)*/ //====================错误的数据========================== // ==============如果数据是一行一个对象的 // ==============如果所有的数据都在一行中 var str = li2.mkString // 替换数据 var str2 = str.replaceAll("},\\{","}==={").replaceAll("},","}===").replaceAll(",\\{","==={") //将中括号替换 var str3 = str2.replaceAll("]","").replaceAll("\\[","") //切分数据 var sss = str3.split("===") for(s <- sss){ var obj:Student = null try { obj = JSON.parseObject(s, classOf[Student]) }catch { case e:Exception => } if(obj != null){ println(obj) } } case class Student(name:String,addr:String,age:Int)//样例类