android 删除JSON值中的嵌套引号

ocebsuys  于 2023-04-04  发布在  Android
关注(0)|答案(1)|浏览(137)

我正在通过kotlinx.serialization.'description '值从一些API解析对象列表。在某些情况下,'description'值可以像这样嵌套引号:

{
    "key": "some "awesome" value"
}

最后,这导致JsonDecodingException,我无法解析内容。如何删除嵌套的引号或其他东西?我没有编辑API的能力。
我尝试使用正则表达式,但它不起作用。引号没有去任何地方。
我尝试使用的内容:
x一个一个一个一个x一个一个二个一个x一个一个三个一个

2guxujil

2guxujil1#

我发现了一种通过空格来查找嵌套引号的方法。这不是理想的答案,但它解决了我的问题。

private fun fixNestedQuotes(str: String): String {
    val indexesToRemove = str.indices.filterIndexed { index, _ ->
        (index > 0 && index < str.lastIndex && str[index] == '\"' && str[index - 1].isWhitespace()) ||
                (index > 0 && index < str.lastIndex - 1 && str[index] == '\"' && str[index + 1].isWhitespace())
    }

    return str.filterIndexed{index, _ -> !indexesToRemove.contains(index)}
}

相关问题