首页 > 其他分享 >scala class、Map、List 转换成Json(Gson、json4s、JSONUtil)

scala class、Map、List 转换成Json(Gson、json4s、JSONUtil)

时间:2023-07-06 14:11:40浏览次数:37  
标签:Map name val scala JSONUtil gson println age

实例代码

import cn.hutool.json.JSONUtil
import com.google.gson.Gson


object EntitytoJsonTest {

  def main(args: Array[String]): Unit = {
    val gson = new Gson
    val people = JJ("gl", 12, List("basketball", "baseball"),
      Map("k1" -> "v1", "k2" -> "v2"))

    println("gson======================")

    val jsonStr = gson.toJson(people)
    println(jsonStr)

    println(gson.toJson(List("123","234","455")))
    println(gson.toJson(List("123","234","455")))
    println(gson.toJson(Map("k1" -> "v1", "k2" -> "v2")))

    println("json4s======================")
    import org.json4s._
    import org.json4s.jackson.Serialization._
    import org.json4s.jackson.Serialization

    implicit val formats = Serialization.formats(NoTypeHints)
    val m = Map(
      "name" -> "john doe",
      "age" -> 18,
      "hasChild" -> true,
      "childs" -> List(
        Map("name" -> "dorothy", "age" -> 5, "hasChild" -> false),
        Map("name" -> "bill", "age" -> 8, "hasChild" -> false)))

    val s:String = write(m)
    println(s)

    val s1 = write(people)
    println(s1)

    println("JSONUtil======================")

    println(JSONUtil.toJsonStr(people))
    println(JSONUtil.toJsonPrettyStr(s1))
  }
}

case class JJ(var name: String, var age: Int, var hobbies: List[String]
              , var skills: Map[String, String])

运行结果

gson======================
{"name":"gl","age":12,"hobbies":{},"skills":{}}
{"head":"123","tl":{}}
{"head":"123","tl":{}}
{"key1":"k1","value1":"v1","key2":"k2","value2":"v2"}
json4s======================
{"name":"john doe","age":18,"hasChild":true,"childs":[{"name":"dorothy","age":5,"hasChild":false},{"name":"bill","age":8,"hasChild":false}]}
{"name":"gl","age":12,"hobbies":["basketball","baseball"],"skills":{"k1":"v1","k2":"v2"}}
JSONUtil======================
{}

标签:Map,name,val,scala,JSONUtil,gson,println,age
From: https://www.cnblogs.com/iullor/p/17531985.html

相关文章

  • scala case class和普通class 动态参数赋值
    普通class赋值,将A类的属性赋值给B类//动态赋值测试objectDynamicAssignmentTest{defmain(args:Array[String]):Unit={varaList=List(newA1("A1",12),newA1("A2",13),)valb1List=scala.collection.mutable.ListBuffer......
  • Java和scala集合互相转换
    使用scala.collection.JavaConverters与Java集合交互。它有一系列的隐式转换,添加了asJava和asScala的转换方法。importscala.collection.JavaConverters._vallist:java.util.List[Int]=List(1,2,3,4).asJavavalbuffer:scala.collection.mutable.Buffer[Int]=lis......
  • IDEA:MAVEN:Result Maps collection does not contain value for com.itheima.mapper.
    尝试过很多方法:我的代码与视频的一致仍然不可行。可以发现是mapper文件的错误后发现自己的资源文件下的包创建方式不对,尽管打的target包里仍然存在代码,仍是错误的。之后更改resource文件下包的命名方式用“/”来命名即可。   ......
  • 浅谈java8中map的新方法
    Map在java8中新增了两个replace的方法1.replace(k,v)在指定的键已经存在并且有与之相关的映射值时才会将指定的键映射到指定的值(新值)在指定的键不存在时,方法会return回来一个nulljavadoc的注释解释了该默认值方法的实现的等价Java代码:if(map.containsKey(key)){returnmap.put(ke......
  • HashMap的遍历方法
    Map<String,String>myMap=newHashMap<>();myMap.put("key1","value1");myMap.put("key2","value2");//for循环遍历for(Map.Entry<String,String>entry:myMap.entrySet()){Stringkey=entry.getKe......
  • restful api报错:Ambiguous handler methods mapped for ...
    问题最近,为了给大家搭建一个学习环境,开发了几个restfulapi  在用jmeter发请求的时候报错请求为: 报错:通过id查询,也会匹配到通过username查询{"code":1002,"msg":"请求失败","data":"Ambiguoushandlermethodsmappedfor'/qzcsbj/v2/users/4':{publiccom.qzcsbj.dem......
  • 解决vue中mapbox地图显示一半的问题
    解决vue中mapbox地图显示一半的问题问题描述:在vue中创建mapbox地图,地图只显示一般,查看浏览器开发者工具。发现将canvas.mapboxgl-canvas的position:absolute去掉就解决了。代码修改:获取到canvas.mapboxgl-canvas,并修改其position样式就ok修改前代码:<template><main......
  • 网易免费企业邮POP3/IMAP/SMTP配置
    网易免费企业邮支持POP3/IMAP/SMTP服务,您可以通过电脑客户端软件更好地收发邮件,服务器地址:POP3:pop.ym.163.com默认端口为:110(如勾选ssl安全链接,端口号为995)SMTP:smtp.ym.163.com默认端口为:25(如勾选ssl安全链接,端口号为994)IMAP:imap.ym.163.com默认端口为:143(如勾选ssl安全链......
  • Java源码系列4——HashMap扩容时究竟对链表和红黑树做了什么?
    Photobyhippopx.com我们知道HashMap的底层是由数组,链表,红黑树组成的,在HashMap做扩容操作时,除了把数组容量扩大为原来的两倍外,还会对所有元素重新计算hash值,因为长度扩大以后,hash值也随之改变。如果是简单的Node对象,只需要重新计算下标放进去就可以了,如果是链表和红黑......
  • java中concurrentHashMAP和HashTable有什么区别?
    ConcurrentHashMap和HashTable都是Java中用于实现线程安全的哈希表数据结构的类,但它们有一些关键的区别。线程安全性:ConcurrentHashMap是通过使用锁分段技术来实现线程安全的。它将整个哈希表分成了多个段(默认为16个),每个段有自己的锁。这样,在大多数情况下,多个线程可以同时访问不同......