首页 > 解决方案 > 如何在 Scala 中使用 Gson 库解析单引号特殊字符

问题描述

如果值包含单引号和其他字符,例如 '()= 等,我将无法解析 json 文件 您好我有以下 Json 文件:

{
    "config": {
        "inputDFName": "testInput",
        "conditions": "site_type =  'micro'"
    }
}

解析器类喜欢

case class FilterConfig(inputDFName: String,conditions: String)

我正在使用以下函数解析 json

  def readDataFilter(conf:String): FilterConfig ={
    val gson = new Gson()
    gson.fromJson(conf,classOf[FilterConfig])
  }

但返回错误,如:com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException

但是如果我删除单引号并等于签署它的工作正常。请在这里帮忙。

标签: jsonscalagsonspecial-characters

解决方案


我在这里看到两个问题。

  1. JSON 中的 inputDFName 与 FilterConfig 类中的 testDFName 不匹配。
  2. 您的 JSON 结构与 FilterConfig 的不同。

我尝试运行具有上述更改的代码并且工作正常。

case class FilterConfig(inputDFName: String,conditions: String)

import com.google.gson.Gson;

def readDataFiltr(conf:String): FilterConfig ={
  val gson = new Gson()
  gson.fromJson(conf,classOf[FilterConfig])
}
val x = readDataFiltr("{\"inputDFName\": \"testInput\", \"conditions\": \"site_type =  'micro'\"}")

println(x.inputDFName)
println(x.conditions)

如果不清楚,请告诉我。

谢谢,维维克


推荐阅读