Scala字符串插值:转义双引号
我试图使用confluent注册表,但遇到了有关模式格式的问题 我有一个模式:Scala字符串插值:转义双引号,scala,string-interpolation,Scala,String Interpolation,我试图使用confluent注册表,但遇到了有关模式格式的问题 我有一个模式: val mySchema = "{ \"type\": \"string\" }" 架构注册表希望架构的格式如下所示: {"schema" : "{ \"type\": \"string\" }" } 在尝试这一点时: val formatted = s"""{"schema": "$mySchema"}""" //formatted: String = "{\"schema\": \"{\"t
val mySchema = "{ \"type\": \"string\" }"
架构注册表希望架构的格式如下所示:
{"schema" : "{ \"type\": \"string\" }" }
在尝试这一点时:
val formatted = s"""{"schema": "$mySchema"}"""
//formatted: String = "{\"schema\": \"{\"type\" : \"string\"}\"}"
这不是我所需要的(注意\“schema\”
,以及\“
文本前置/后缀为schema值)
感谢您的评论/意见。以下内容是否满足您的要求
object Main extends App {
def formatSchema(schema: String) = schema.replace("\"", "\\\"")
val mySchema = "{ \"type\": \"string\" }"
val formatted = s"""{"schema": "${formatSchema(mySchema)}"""
println(formatted)
}
========= Output ==========
{"schema": "{ \"type\": \"string\" }
raw”“\foo”“”
不解释反斜杠。这是问题吗?如果您可以将mySchema
更改为“{type\”:“string\”}”“”
的话,您的格式化的
行应该可以工作,如果您能将格式化的
更改为多行的s”“{“schema”:“$mySchema”}”“”
但奇怪的是,单行代码不起作用。