scala中用json

文件结构:
{ "DenseFeature": [
     { "field":0,
     "Features":[
     “feature1”
      ]}
]
}
是这样的4层结构,不管用哪套api解析我都是崩溃的,想看看原来怎么拼成这么复杂的结果的。
用scala自带的json解析特别崩溃,因为从map里面拿出来是some类型,json对象还需要拿里面的对象才可以得到内容。
用google的gson库稍微。。。稍微好点

用gson解析:

val br = new BufferedReader(new InputStreamReader(this.getClass.getClassLoader.getResourceAsStream(modelName)))
val featureConf = readJson(br)
val jsonParser = new JsonParser()
val feaObj = jsonParser.parse(featureConf).asInstanceOf[JsonObject]
val denseArray = feaObj.get("DenseFeature").asInstanceOf[JsonArray].get(0).asInstanceOf[JsonObject]
val denseFea = denseArray.get("Features").asInstanceOf[JsonArray]
for(e <- denseFea.size()){
    print(denseFea.get(e)+"\n")
    }

gson的maven依赖:

<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
   <version>2.7</version>
</dependency>

用scala自带json解析:

val br = new BufferedReader(new InputStreamReader(this.getClass.getClassLoader.getResourceAsStream(modelName)))
val featureConf = readJson(br)
val featureJson = JSON.parseRaw(featureConf).get.asInstanceOf[JSONObject]
val DenseFeatue = featureJson.obj.get("DenseFeature").get.asInstanceOf[JSONArray]
val DenseF = DenseFeatue.list(0).asInstanceOf[JSONObject].obj.get("Features").get.asInstanceOf[JSONArray].list
for( e <- DenseF){
   print(e.toString+"\n")
    }
连续的obj.get.asInstanceOf.list......搞不太清


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值