Scala中Json数据解析(net.minidev.json)

解析json字符串中的类型对应如下:

json格式scala格式
整数java.lang.Integer
StringString
dictJSONObject
listJSONArray

测试代码如下:

import net.minidev.json.parser.JSONParser
import net.minidev.json.{JSONArray, JSONObject}
import scala.collection.JavaConversions._
    
object TestScala {
  def main(args: Array[String]): Unit = {

    var jsonParser = new JSONParser()
    var jsonData = jsonParser.parse("""{"_record_id":"00001", "inte": 100, "dicts": {"key1": "value1"},"lists": ["1", "2"]}""").asInstanceOf[JSONObject]
    for(key <- jsonData.keySet()){
      println("key:" + key + "\tkey_class:" + key.getClass + "\tvalue:" + jsonData.get(key) + "\tvalue_class:" + jsonData.get(key).getClass)
    }
    jsonData.put("new_integer", new Integer(10))
    println(jsonData)
        jsonData.put("new_integer", new Integer(10))
    val json = new JSONArray()
    json.add("province")
    json.add("province2")

    jsonData.put("test_list", json)

    val jsonO = new JSONObject
    jsonO.put("als", "res")
    jsonData.put("info", jsonO)

    if(jsonData.getOrElse("inte","").toString == "100"){
      println(jsonData.getOrElse("inte","").getClass)
    }

    println("inte: " + jsonData.getOrElse("inte", new Integer(99999)).asInstanceOf[Integer])
    println("new: "+ jsonData.getOrElse("new", new Integer(99999)).asInstanceOf[Integer])
    println(jsonData)
  }
}

得到结果为:

key:_record_id	key_class:class java.lang.String	value:00001	value_class:class java.lang.String
key:lists	key_class:class java.lang.String	value:["1","2"]	value_class:class net.minidev.json.JSONArray
key:inte	key_class:class java.lang.String	value:100	value_class:class java.lang.Integer
key:dicts	key_class:class java.lang.String	value:{"key1":"value1"}	value_class:class net.minidev.json.JSONObject
{"_record_id":"00001","lists":["1","2"],"inte":100,"new_integer":10,"dicts":{"key1":"value1"}}
class java.lang.Integer
inte: 100
new: 99999
{"_record_id":"00001","lists":["1","2"],"inte":100,"new_integer":10,"test_list":["province","province2"],"dicts":{"key1":"value1"},"info":{"als":"res"}}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值