pom依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
1.读取文件
val product:List[String] = Source.fromFile("F:\Scala\product.txt","utf-8").getLines().toList
2.Json字符串JSON对象互转
import com.alibaba.fastjson.JSON
import java.util
import com.alibaba.fastjson.serializer.SerializeFilter
import scala.beans.BeanProperty
/**
* @description: Json字符串和JSON对象互转
* @author: HaoWu
* @create: 2020年07月28日
*/
object JsonTranslate {
def main(args: Array[String]): Unit = {
val jsonStr = "{"schoolName":"A",clazzs:[{"className":"1001"},{"className":"1002"},{"className":"1003"}]}"
//json字符串转JSON对象
val school = JSON.parseObject(jsonStr,classOf[School])
println(school.schoolName)
//隐式转换将Java的List转为Scala的List
import scala.collection.JavaConversions._
school.clazzs.foreach(x=>println(x.className))
//JSON对象转json字符串
println("*"*10)
println(JSON.toJSONString(school, null.asInstanceOf[Array[SerializeFilter]]))
}
}
//使用fastJson将对象转json字符串的时候必须加上@BeanProperty
//转JSON对象需要用java里面的List,导入java.util包
case class School(@BeanProperty schoolName:String,@BeanProperty clazzs:util.List[Clazz])
case class Clazz(@BeanProperty className:String)
注意
1.从json文件读取的的字符串是如果有List,需要用java的list接收,导入java.util
包
2.如果需要将java的List转换成scala的List的需要导入scala.collection.JavaConversions._
包,进行隐式转换自动将java List转为scala List。
3.JSON对象转json的字符串需要JSON对象对应得实体类有get,set方法。通过@BeanProperty
注解实现。