关闭

[scala--解析]--json字符串

标签: scala
2251人阅读 评论(2) 收藏 举报
分类:

一、主题:使用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/

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

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Scala中json4s的使用例子

最近开始使用json4s来解析和生成JSON。 引入依赖 org.json4s json4s-jackson_2.10 3.2.11 构造JSON字符串 例1i...
  • u011491148
  • u011491148
  • 2015-03-29 21:12
  • 8766

Scala处理JSON

Scala在处理json的时候,使用java的json-lib  def main(args: Array[String]): Unit = {     val str2 = "{\"et\":\...
  • u013983450
  • u013983450
  • 2016-09-12 16:15
  • 7779

jackson 完整Jar包

  • 2017-02-23 16:14
  • 1.73MB
  • 下载

Jackson 2开发详解

Jackson 2开发详解作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsJackson 2库是流行的Java JSON解析库之一。本文主要讲述Jackso...
  • chszs
  • chszs
  • 2015-10-30 22:48
  • 5371

scala 解析json字符串

scala中自带了一个 scala.util.parsing.json.JSON 然后可以通过JSON.parseFull(jsonString:String)来解析一个json字符串,如果解析成...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2015-07-16 14:39
  • 28817

Scala解析Json字符串

1. 添加相应依赖       Json解析工具使用的 json-smart,曾经对比过Java的fastjson、gson。Scala的json4s、lift-json。其中 json-smart ...
  • u013709270
  • u013709270
  • 2017-04-06 21:06
  • 2525

JackSon学习笔记(一)

概述: Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”。  Jackson框架包含了3个核心库:streaming,databind,annota...
  • java_huashan
  • java_huashan
  • 2015-06-05 16:05
  • 34431

jackson jar包

  • 2013-06-10 19:40
  • 844KB
  • 下载

使用Scala Parser解析JSON

原博客地址:使用Scala Parser解析JSON import scala.util.parsing.combinator._ class JsonParser extends JavaTok...
  • o1101574955
  • o1101574955
  • 2016-10-07 10:53
  • 1877

scala 中json 应用

Beautiful JSON parsing in Scala You probably all know JSON - it's becoming the universal data e...
  • javastart
  • javastart
  • 2016-03-10 08:35
  • 8684
    个人资料
    • 访问:827874次
    • 积分:12338
    • 等级:
    • 排名:第1366名
    • 原创:418篇
    • 转载:63篇
    • 译文:54篇
    • 评论:94条
    博客专栏
    最新评论