美文网首页
Scala使用jackson解析JSON

Scala使用jackson解析JSON

作者: FaDeo_O | 来源:发表于2017-11-22 21:33 被阅读0次
    • jackson依赖
      <dependency>
          <groupId>com.fasterxml.jackson.module</groupId>
          <artifactId>jackson-module-scala_2.11</artifactId>
          <version>2.6.5</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))
        }
      }
      

    相关文章

      网友评论

          本文标题:Scala使用jackson解析JSON

          本文链接:https://www.haomeiwen.com/subject/fxaovxtx.html