balabalabala

%=% ?#=# : ^-^

[scala解析]--json字符串

一、主题:使用Scala的类库解析json字符串,避免引入第三方依赖包

二、实现如下:

import org.json4s.DefaultFormats
import org.json4s.jackson.JsonMethods._

import scala.collection.mutable

/**
  * Created by yangjf on 2017/1/3
  * Update date:
  * Time: 18:23
  * Describle :测试scala解析json数据
  * Result of Test:
  * Command:
  * Email: jifei.yang@ngaa.com.cn
  */
object JsonParseUtils {
  def main(args: Array[String]) {
    val json = "{\"name\":\"BeJson\",\"url\":\"http://www.bejson.com\",\"page\":88,\"isNonProfit\":true,\"address\":{\"street\":\"科技园路.\",\"city\":\"江苏苏州\",\"country\":\"中国\"},\"links\":[{\"name\":\"Google\",\"url\":\"http://www.google.com\"},{\"name\":\"Baidu\",\"url\":\"http://www.baidu.com\"},{\"name\":\"SoSo\",\"url\":\"http://www.SoSo.com\"}]}"
    json2Map(json)
  }

  def json2Map(json: String) {
    implicit val formats = DefaultFormats
    //解析结果
    val responseInfo: ResponseInfo = parse(json).extract[ResponseInfo]
    println(responseInfo)
    //数组数据
    val addressArray = responseInfo.address
    val linkArray = responseInfo.links
    println(addressArray)
    for (link <- linkArray) {
      println("linkArray:" + link)
    }

  }

  //二级列表
  case class AddressInfo(street: String, city: String, country: String) {
    override def toString = s"street:$street,  city:$city,  county:$country"
  }

  case class LinkInfo(name: String, url: String) {
    override def toString = s"name:$name,  url:$url"
  }

  //一级列表
  case class ResponseInfo(name: String, url: String, page: Integer,
                          isNonProfit: Boolean, address: AddressInfo,
                          links: Array[LinkInfo]) {
    override def toString = s"name:$name,  url:$url, page:$page,  isNonProfit:$isNonProfit,  address:$address,  links:$links"
  }

}

三、注意

(1)需要有隐式转换:

implicit val formats= DefaultFormats


(2)引入类库包:

import org.json4s.DefaultFormats
import org.json4s.jackson.JsonMethods._
参考:
http://json4s.org/

https://github.com/json4s/json4s

http://kubicode.me/2015/05/24/scala/Study-And-User-JSON4S/

测试通过,可以按需求修改!

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/high2011/article/details/53996981
文章标签: scala
个人分类: Scala 相关解析
所属专栏: Scala
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

[scala解析]--json字符串

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭