zoukankan      html  css  js  c++  java
  • Scala使用jackson解析JSON

    pom:

                <dependency>
                    <!--这个版本需要跟微服务的Jackson版本保持一致-->
                    <artifactId>jackson-module-scala_2.11</artifactId>
                    <groupId>com.fasterxml.jackson.module</groupId>
                    <version>2.8.1</version>
                </dependency>

    实例,@BeanProperty为样本类生成 Java 风格的 get、set方法,@JsonProperty注解映射字段

    import java.util
    import com.fasterxml.jackson.annotation.JsonProperty
    
    import scala.beans.BeanProperty
    import scala.collection.JavaConversions._
    
    object parse {
      case class Item(@JsonProperty("bw") @BeanProperty bw: String, @JsonProperty("cdn") @BeanProperty cdn: Long, @JsonProperty("ct") @BeanProperty ct: Long)
      case class Outer(@JsonProperty("video_bandwidths") @BeanProperty items: util.ArrayList[Item])
    
      def main(args: Array[String]): Unit = {
        import com.fasterxml.jackson.core.JsonParser.Feature
        import com.fasterxml.jackson.databind.ObjectMapper
    
        val mapper = new ObjectMapper
        //解析器支持解析单引号
        mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true)
        //解析器支持解析结束符
        mapper.configure(Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true)
    
        val jsonMap = mapper.readValue("{"video_bandwidths":[ { "bw" : "484456834" , "cdn" : 0 , "ct" : 0} , { "bw" : "160477600" , "cdn" : 0 , "ct" : 1} , { "bw" : "603954332" , "cdn" : 0 , "ct" : 2}]}", classOf[Outer]) //转换为HashMap对象
    
        jsonMap.getItems.foreach(println)
        println(jsonMap.getItems.get(0).getBw)
        jsonMap.getItems.foreach(a=>println(a.getBw))
      }
    }
  • 相关阅读:
    蓝凌OA 后台URL跳转(鸡肋0day)
    蓝凌后台注入分析
    蓝凌ssrf+xmldecoder
    shiro550反序列化复现
    BCEL ClassLoader加载字节码
    TemplatesImple链加载字节码
    ysoserial Commons Collections3反序列化研究
    Xstream远程代码执行(CVE-2020-26217)复现分析
    Java安全之命令执行(二)
    Java安全之命令执行(一)
  • 原文地址:https://www.cnblogs.com/chong-zuo3322/p/13494587.html
Copyright © 2011-2022 走看看