scala 自带json 您所在的位置:网站首页 scala字符串格式化 scala 自带json

scala 自带json

2023-11-03 15:12| 来源: 网络整理| 查看: 265

如果您使用的是Play Framework,可以使用Json.prettyPrint方法格式化JsValue:

import play.api.libs.json.Json

val str = """{"foo": {"bar": {"baz": "T"}}}"""

val jsValue = Json parse str

// JsValue = {"foo":{"bar":{"baz":"T"}}}

Json prettyPrint jsValue

// String =

// {

// "foo" : {

// "bar" : {

// "baz" : "T"

// }

// }

// }

如果您使用的是scala.util.parsing.json,则必须自己创建此类方法.例如:

def format(t: Any, i: Int = 0): String = t match {

case o: JSONObject =>

o.obj.map{ case (k, v) =>

" "*(i+1) + JSONFormat.defaultFormatter(k) + ": " + format(v, i+1)

}.mkString("{\n", ",\n", "\n" + " "*i + "}")

case a: JSONArray =>

a.list.map{

e => " "*(i+1) + format(e, i+1)

}.mkString("[\n", ",\n", "\n" + " "*i + "]")

case _ => JSONFormat defaultFormatter t

}

val jsn = JSON.parseRaw("""{"foo": {"bar": {"baz": "T"}, "arr": [1, 2, "x"]}, "foo2": "a"}""").get

// JSONType = {"foo" : {"bar" : {"baz" : "T"}, "arr" : [1.0, 2.0, "x"]}, "foo2" : "a"}

format(jsn)

// String =

// {

// "foo": {

// "bar": {

// "baz": "T"

// },

// "arr": [

// 1.0,

// 2.0,

// "x"

// ]

// },

// "foo2": "a"

// }

请注意,这不是一种有效的实现.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有