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))
      }
    }
  • 相关阅读:
    String_字符串各个场景下的==
    jvm_run-time method area
    jvm类加载_类的流程
    TypeError: Restaurant() takes no arguments
    EMC测试国家标准GB/T 17626
    8-8 用户的专辑
    8-7 专辑
    8-6 城市名
    7-6 三个出口
    TypeError: module() takes at most 2 arguments (3 given)
  • 原文地址:https://www.cnblogs.com/chong-zuo3322/p/13494587.html
Copyright © 2011-2022 走看看