使用groovy获取JsonSlurper属性

时间:2018-03-28 12:33:03

标签: json groovy jsonslurper

我有一个像这样的Json文件:

{
  "type" : "record",
  "name" : "test",
  "fields" : [ {
    "name" : "y",
    "type" : {
      "type" : "array",
      "items" : "double"
    },
    "doc" : "Type inferred from '[1.0,0.9766205557100867,0.907575419670957,0.7960930657056438,0.6473862847818277,0.46840844069979015,0.26752833852922075,0.05413890858541761,-0.16178199655276473,-0.37013815533991445,-0.5611870653623823,-0.7259954919231308,-0.8568571761675893,-0.9476531711828025,-0.9941379571543596,-0.9941379571543596,-0.9476531711828025,-0.8568571761675892,-0.7259954919231307,-0.5611870653623825,-0.37013815533991445,-0.16178199655276476,0.05413890858541758,0.267528338529221,0.4684084406997903,0.6473862847818279,0.796093065705644,0.9075754196709569,0.9766205557100867,1.0]'"
  }, {
    "name" : "x",
    "type" : {
      "type" : "array",
      "items" : "double"
    },
    "doc" : "Type inferred from '[0.0,0.21666156231653746,0.43332312463307493,0.6499846869496124,0.8666462492661499,1.0833078115826873,1.2999693738992248,1.5166309362157622,1.7332924985322997,1.9499540608488373,2.1666156231653746,2.383277185481912,2.5999387477984497,2.8166003101149872,3.0332618724315243,3.249923434748062,3.4665849970645994,3.683246559381137,3.8999081216976745,4.116569684014212,4.333231246330749,4.549892808647287,4.766554370963824,4.983215933280362,5.199877495596899,5.416539057913437,5.6332006202299745,5.849862182546511,6.066523744863049,6.283185307179586]'"
  } ]
}

我想从这个文件创建一个sql查询。所以我写了这段代码

def schema= new JsonSlurper().parseText(myAttr)
//build create table statement
def createTable = "create table if not exists ${schema.name} (" +
    schema.fields.collectMany{ "\n  ${it.name.padRight(39)} ${typeMap[it.type.collectMany{it.items}]}" }.join(',') +
    "\n)"

但我认为我没有正确访问价值物品。请有人帮帮我

1 个答案:

答案 0 :(得分:0)

好的,猜测let intValue = 4 let selectedValue = SelectedValue(rawValue: intValue) label.text = selectedValue?.description ?? "No value selected" 类似于:

typeMap

您可以将代码更改为:

def typeMap = [
    double: 'DOUBLE'
]