scala 自带json | 您所在的位置:网站首页 › scala字符串格式化 › scala 自带json |
如果您使用的是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 实验室设备网 版权所有 |