gpt4 book ai didi

json - grails json转换器仅返回字符串,而不返回数字,整数或 double

转载 作者:行者123 更新时间:2023-12-02 14:50:40 25 4
gpt4 key购买 nike

我有一个数据库表,用于存储简单表的结构。该表包含用户数据。用户可以定义如何设置表格。因此,我存储值及其类型。一切都是存储表中的一个字符串。我需要将其作为JSON传递给浏览器客户端,该客户端在JSON上执行一些JavaScript。但是,我想要JSON对象中的数字值和字符串值,但是Grails JSON转换器只会吐出Strings

我的服务有:

def testMap(){
//my results from a query
List query = [["name":"price","value":"4.23","type":"double"],["name":"title","value":"box","type":"string"]]

Map results = [:]
query.each{ row ->
if (row.type == "double"){
results << [(row.name): row.value]
}
else
{
//what do I do here?
results << [(row.name): row.value]
}
}
return results
}

我的 Controller 有...
def showMap(){
render touchSourceSystemService.testMap() as JSON
}

结果是...
{"price":"4.23","title":"box"}

但是我需要价格是数字,而不是像这样的字符串。
{"price":4.23,"title":"box"}

最佳答案

我有同样的问题。我能使它工作的唯一方法就是这样...

将此添加到您的服务类别的顶部:

import groovy.json.*

然后在您的服务方法中,执行以下操作:
def testMap(){
//my results from a query
List query = [[name:"price",value:"4.23",type:"double"],[name:"title",value:"box",type:"string"]]
def slrp = new JsonSlurper()
def results = [:]
query.each{ row ->
if (row.type == "double"){

//results << ["'${row.name}'": "${row.value}"]
results << slrp.parseText('{"' + row.name + '":' + row.value + '}')
}
else
{
//what do I do here?
results << slrp.parseText('{"' + row.name + '":"' + row.value + '"}')
//results << ["'${row.name}'": "'${row.value}'"]

}
}
return results
}

您的 Controller 现在应该返回以下内容:
{"price":4.23,"title":"box"}

关于json - grails json转换器仅返回字符串,而不返回数字,整数或 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735372/

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