无法在 groovy 中转换为漂亮的字符串
Posted
技术标签:
【中文标题】无法在 groovy 中转换为漂亮的字符串【英文标题】:Unable to convert into pretty string in groovy 【发布时间】:2021-09-12 22:42:04 【问题描述】:我在 groovy 中打了一个 curl 调用来休息 api visa curl。响应很好,但响应非常大,这是一个 17MB 的数据,以下是我的脚本:
def converter = "curl.......'"
def initialSize = 4096
def out = new ByteArrayOutputStream(initialSize)
def err = new ByteArrayOutputStream(initialSize)
def process = [ 'bash', '-c', converter].execute()
process.consumeProcessOutput(out, err)
process.waitFor()
Curl 响应很好,当我在控制台上打印响应,存储在变量中时,它会给出响应数据,它不是整洁的 json,因为我看到了一些“/n”字符。当我将其写入文件时,我看不到任何新行和整洁的 json,我只看到一行中的键值格式数据。
"key1":"value1","key2":"value2", in one huge line only
这是我以崇高的方式观看的时候。现在我想将其转换为漂亮的 json 并整齐地写入文件。我尝试遵循方法,但在控制台和文件中都打印为空 ( )。
def json = JsonOutput.toJson(out)
println new JsonBuilder(out).toPrettyString()
我错过了什么?
我正在尝试仅使用 groovy 库。
更新:
当我尝试调试时,我发现这可能是因为所有 JSON 解析器都需要字符串,但我的输出是 ByteArrayOutputStream。但是现在我怎样才能将 out 转换为 string ?我试过out.toString和out.text,都不行。
【问题讨论】:
【参考方案1】:使用StringWriter
代替ByteArrayOutputStream
然后JsonOutput.prettyPrint( stringWriter.toString() )
【讨论】:
以上是关于无法在 groovy 中转换为漂亮的字符串的主要内容,如果未能解决你的问题,请参考以下文章