我可以将条件表达式放在groovy中的多行字符串中吗?

时间:2015-03-13 14:14:34

标签: groovy multiline

例如,给出以下内容:

"""
 {
   "a": "$a",
   "b": "$b",
   "c": "$c"
 }
"""

如果$ c为空,如何阻止它包含最后一行(“c”:“$ c”)?

2 个答案:

答案 0 :(得分:2)

看起来不太好看:

"""
     {
       "a": "$a",
       "b": "$b"${c != null ? ',\n       "c": "' + c + '"' : '' }
     }
"""

如果你需要相同的格式。

或者,以更易读的形式:

"""
 {
   "a": "$a",
   "b": "$b"
   ${c != null ? ', "c": "' + c + '"' : '' }
 }
"""

答案 1 :(得分:2)

或者,当你写json时;

def map = [a:a, b:b] + (c != null ? [c:c] : [:])
String json = new groovy.json.JsonBuilder(​​​​​​​​​map)​