Javascript Groovy脚本:如何在每个循环中解析/格式化Groovy中的Json
我是Groovy新手,我试图在soap ui中模拟服务 需求是加载一个包含json数据的文本文件,并加载一个包含匹配数据的节点 我试过的方法如下:Javascript Groovy脚本:如何在每个循环中解析/格式化Groovy中的Json,javascript,json,groovy,scripting,soapui,Javascript,Json,Groovy,Scripting,Soapui,我是Groovy新手,我试图在soap ui中模拟服务 需求是加载一个包含json数据的文本文件,并加载一个包含匹配数据的节点 我试过的方法如下: def inputFile = new File("D:\\Users\\json.txt") def InputJSON = new JsonSlurper().parseText(inputFile.text) InputJSON.each{ def ID1 = it it.items.each {
def inputFile = new File("D:\\Users\\json.txt")
def InputJSON = new JsonSlurper().parseText(inputFile.text)
InputJSON.each{
def ID1 = it
it.items.each {
if(it.Number == itemNumber)
{
log.info it
requestContext.Id = ID1
}
}
}
这很好,只是一个问题,就是格式。
当ID1加载到requestContext.Id中时,文件中的json格式将丢失
我需要的是
{
"items" {
"number" : 1475175072691
}
}
我得到的是
{
metadata = {
timestamp = 1475175072691
}
}
为什么它会从我的json中删除双引号“和冒号:。
请推荐。以下代码:
import groovy.json.*
def str = '''\
[
{
"items":{
"number":1475175072691
}
},
{
"items":{
"number":1475175072691
}
},
{
"items":{
"number":1475175072691
}
},
{
"items":{
"number":1475175072691
}
}
]'''
def json = new JsonSlurper().parseText(str)
json.each {
println JsonOutput.prettyPrint(JsonOutput.toJson(it))
}
打印出以下结果:
{
"items": {
"number": 1475175072691
}
}
{
"items": {
"number": 1475175072691
}
}
{
"items": {
"number": 1475175072691
}
}
{
"items": {
"number": 1475175072691
}
}
换句话说,您需要序列化并漂亮地打印json节点以获得所需的格式。请显示文件的内容?文件的内容与我在“我需要什么”一节中提到的内容相同,当我从文件中读取并记录时,我得到了我在“我得到的是什么”中看到的内容“section.additional information:
json
变量(原始代码InputJSON
)的运行时类型是java.util.Map
。打印映射会导致从字符串文本中删除引号。使用JsonOutput.prettyPrint
将值映射转换为相应的JSON。感谢大家的帮助。