首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy inspect()句柄美元符号($)

Groovy inspect()句柄美元符号($)
EN

Stack Overflow用户
提问于 2011-09-14 09:14:28
回答 4查看 8.8K关注 0票数 4

下面的代码无法运行

代码语言:javascript
复制
def map = [name:"Test :: ( %2f %25 \$ * & ! @ # ^)"]
String s = map.inspect()
println Eval.me(s)

获取错误:

代码语言:javascript
复制
Script1.groovy: 1: illegal string body character after dollar sign; 

solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 1, column 30.
   ["name":"Test :: ( %2f %25 $ * & ! @ # ^)"]

但是如果字符串包含其他特殊字符,比如\",它就能正常工作。不管怎样,怎么走呢?这对我来说是紧急情况

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-15 11:38:21

(回应上述跟进)

好吧,如果您只是想交换信息,那么您应该使用数据交换格式,比如XML或JSON。我推荐JSON,因为它轻量级、快速且非常易于使用:

计算机1

代码语言:javascript
复制
def map = [name:"Test :: ( %2f %25 \$ * & ! @ # ^)"]
def json = new groovy.json.JsonBuilder()
json(map)
println json.toString()

计算机2

代码语言:javascript
复制
def incoming = '{"name":"Test :: ( %2f %25 $ * & ! @ # ^)"}'
def jsonInput = new groovy.json.JsonSlurper()
def map = jsonInput.parseText(incoming)
println map

请注意,这些需要Groovy 1.8.0或更高版本才能运行。老版本的Groovy有很多示例,Grails也内置了自己的解析器。

票数 2
EN

Stack Overflow用户

发布于 2011-09-14 14:14:23

在字符串两边使用单引号:

代码语言:javascript
复制
def map = [name:'Test :: ( %2f %25 \$ * & ! @ # ^)']

使用双引号时,dollar char is used for templating

票数 0
EN

Stack Overflow用户

发布于 2011-09-14 15:53:35

使用单引号和双反斜杠,例如,

代码语言:javascript
复制
def map = [name:'Test :: ( %2f %25 \\$ * & ! @ # ^)']
String s = map.inspect()
println Eval.me(s)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7410252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档