gpt4 book ai didi

json - 加入一个 JSONArray 给 groovy 中的字符串添加双引号

转载 作者:行者123 更新时间:2023-12-02 13:57:59 26 4
gpt4 key购买 nike

我有一个进行 REST 调用的 grails 应用程序。如果发生错误,则返回包含错误消息的 JSON 数组。我需要将这些字符串组合成一个字符串。但是,当我这样做时,双引号会添加到字符串的前端和末尾。我写了一个简单的测试 Controller 来说明这个问题:

import net.sf.json.*
class MyController {

def test = {

String msg = "'fred' is not a valid LDAP distinguished name."
JSONArray messages = new JSONArray()
messages.add(msg)
def renderStr = messages.join('<br/>')

render(renderStr)
}
}

输出如下所示:
"'fred' is not a valid LDAP distinguished name."

最佳答案

问题是 join 函数返回 JSON-spec 字符串......根据他们的文档在这里:http://grails.org/doc/1.0.3/api/org/codehaus/groovy/grails/web/json/JSONArray.html

 The texts produced by the toString methods strictly conform to JSON syntax rules. The constructors are more forgiving in the texts they will accept:

An extra , (comma) may appear just before the closing bracket.
The null value will be inserted when there is , (comma) elision.
Strings may be quoted with ' (single quote).
Strings do not need to be quoted at all if they do not begin with a quote or single quote, and if they do not contain leading or trailing spaces, and if they do not contain any of these characters: { } [ ] / \ : , = ; # and if they do not look like numbers and if they are not the reserved words true, false, or null.
Values can be separated by ; (semicolon) as well as by , (comma).
Numbers may have the 0- (octal) or 0x- (hex) prefix.
Comments written in the slashshlash, slashstar, and hash conventions will be ignored.

请注意,“如果字符串不以引号或单引号 开头,则根本不需要引用字符串 ”的规则就是正在发生的事情。您的字符串以引号开头,因此如果输出没有引号,则 JSON 解析器会假设字符串以第二个单引号结尾,之后的文本将是无法解析的垃圾。

关于json - 加入一个 JSONArray 给 groovy 中的字符串添加双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com