首页 > 解决方案 > Scala字符串插值:转义双引号

问题描述

我正在尝试使用融合注册表并遇到有关架构格式的问题。

我有一个架构:

val mySchema = "{ \"type\": \"string\" }"

架构注册表希望架构的格式如下:

{"schema" : "{ \"type\": \"string\" }" }

在尝试这个:

    val formatted =  s"""{"schema": "$mySchema"}"""
    //formatted: String = "{\"schema\": \"{\"type\" : \"string\"}\"}"

这不是我需要的(注意\"schema\", 和\"模式值前/后缀的文字)

感谢评论/输入。

标签: scalastring-interpolation

解决方案


以下是否满足您的要求


    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\" }


推荐阅读