fastjson使用

1. pom文件

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>

2. 基本使用方法

	import java.util
	import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}
	import com.alibaba.fastjson.serializer.{SerializeConfig,}

    case class Person(name: String, age: Int)

    def main(args: Array[String]): Unit = {

        // 1. case class 转换成json字符串 如果没有第二个参数会导致方法重载冲突
        val objectToJsonStr: String = JSON.toJSONString(Person("zhangshan", 18), new SerializeConfig(true))
        println(objectToJsonStr) // {"age":18,"name":"zhangshan"} 打印结果

        // 2. List<Object> 转换为json字符串
        val persons: util.ArrayList[Person] = new util.ArrayList[Person]()

        persons.add(Person("zhangsan", 18))
        persons.add(Person("zhangsan2", 19))
        persons.add(Person("zhangsan3", 20))
        persons.add(Person("zhangsan4", 21))

        val jsonStrArray: String = JSON.toJSONString(persons, new SerializeConfig(true))
        println(jsonStrArray) // [{"age":18,"name":"zhangsan"},{"age":19,"name":"zhangsan2"},{"age":20,"name":"zhangsan3"},{"age":21,"name":"zhangsan4"}]


        // 3. json字符串转换为 JSONObject
        val jsonObject: JSONObject = JSON.parseObject(objectToJsonStr)
        println(jsonObject) // {"name":"zhangshan","age":18}

        // 4. json字符串数组转换成 JSONArray
        val jsonAr: JSONArray = JSON.parseArray(jsonStrArray)
        println(jsonAr) // [{"name":"zhangsan","age":18},{"name":"zhangsan2","age":19},{"name":"zhangsan3","age":20},{"name":"zhangsan4","age":21}]

        // 遍历JSONArray对象并根据key获取value
        for (i <- 0 to jsonAr.size() - 1) {
            val json = JSON.parseObject(jsonAr.get(i).toString) // 必须转换成String形式
            println(json.get("name"), json.get("age"))
        }
    }

3. Scala使用fastjson时,报错信息

ambiguous reference to overloaded definition,
both method toJSONString in object JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serializer.SerializerFeature*)String
and  method toJSONString in object JSON of type (x$1: Any)String
match argument types (com.atguigu.flink.learning2.Person) and expected result type Any
println(JSON.toJSONString(Person("zhangsan", 20)))

两个方法由于参数匹配问题,无法确定加载哪个导致上述报错。

3.1 解决方法一

case class Person(name: String,age: Int)
println(JSON.toJSONString(Person("zhangsan", 20),new SerializeConfig(true)))  // 打印结果:{"age":20,"name":"zhangsan"}

fastjson学习参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值