Javascript Groovy脚本:如何在每个循环中解析/格式化Groovy中的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 {

我是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 { 
            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。感谢大家的帮助。