【问题标题】:reading name of json using groovy使用 groovy 读取 json 的名称
【发布时间】:2023-04-02 18:55:01
【问题描述】:

我有以下 JSON 结构,我正在尝试将名称 order/sale/Cancel 检索到 groovy 中的字符串变量

{"Transaction" : {"Order" : { ......
{"Transaction" : {"Sale" : { ......
{"Transaction" : {"Cancel" : { ......

我能够做到这一点,通过一些研究使用 JSON slurper 读取 JSON,但不确定如何读取名称。我看到的大多数文章都指向读取值而不是名称。

final BufferedReader inReader = new BufferedReader(new InputStreamReader(inputStream, 'UTF-8'))
Object result = jsonSlurper.parse(inReader)

我已经从 XML 转换为 JSON,所以如果可以使用 XML 或 JSON 来完成这将有所帮助。

【问题讨论】:

    标签: json groovy xmlslurper jsonslurper


    【解决方案1】:

    正确的是使用:

    def json = '{"Transaction" : {"Order" : "result"} }'
    
    def slurper = new groovy.json.JsonSlurper()
    def result = slurper.parseText(json)
    
    assert 'Order' == result.Transaction.keySet().first()
    

    【讨论】:

      【解决方案2】:

      如果您在 String 中有 JSON,则无需创建 BufferedReader,只需使用 parseText。解析 JSON 后,您可以通过遍历属性来访问它。

      def slurper = new groovy.json.JsonSlurper()
      def result = slurper.parseText(inputStream.text)​;
      
      result.Transaction.Order​ //result
      

      【讨论】:

      • json 不在字符串中,所以必须使用 bufferedReader
      • 您可以在 inputStream 上使用getText() 方法将其作为字符串获取。编辑了我的答案。
      猜你喜欢
      • 2022-11-05
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      相关资源
      最近更新 更多