我是groovy的新手,这可能是非常微不足道的.我有一个字符串,其格式与groovy的地图一样(地图中也有地图).
我想要做的只是将字符串格式转换为groovy map.我试过这个但是我的字符串太大了,Eval.me无法计算.有没有其他方法可以做到这一点?
我的字符串格式有点像这样: -
[
'item1':[
[
'subitem11':1,
'subitem21':'name',
'subitem31':'nametwo'
],
[
'subitem21':'1',
'subitem22':'name2'
],
[
'subitem31':'2',
'subitem32':'name3'
]
],
'item2':'itemContent',
'item3':'itemContent3',
'item4':'itemContent4',
'item5':'itemContent5',
'item6':'itemContent6',
'item7':'itemContent7',
'item7':['subitem71', 'subitem72']
]
Run Code Online (Sandbox Code Playgroud)
它可能不是一个简单或明确的解决方案,但它可以工作.
首先,关于"计算字符串太大",Guilame在类似的问题链接中给出了一个很好的答案.(第一个答案).他指出,脚本评估不适合大数据处理,并且您将很快通过使用一些黑客或优化来达到JVM限制.
您可以尝试拆分数据,但这也不是很好的解决方案.
您的Groovy格式可以解释为YAML.
因此,您可以使用YAML解析器库从该字符串中提取数据.
即:
@Grab( 'org.yaml:snakeyaml:1.13' )
import org.yaml.snakeyaml.Yaml
def data = new Yaml().load( string )
Run Code Online (Sandbox Code Playgroud)
此外,还有几个YAML-JSON转换器.如果您可以通过这种方式准备数据,Groovy新的JSON解析器非常快.
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |