fastjson解析json

原始json样式:

{
	"p_end": "20190819",
	"partitionNum": "1000",
	"time_name": "createTime",
	"interval_15": [{
		"templet1": [{
			"driver": "devFp",
			"match": "phone"
		}, {
			"driver": "devFp",
			"match": "ip"
		}]
	}, {
		"templet2": [{
			"driver": "inAccount",
			"match": "amount"
		}]
	}]
}
import com.alibaba.fastjson.{JSON, JSONArray, JSONObject}

var jsonStr = "{\"p_end\": \"20190819\",\"partitionNum\": \"1000\",\"time_name\": \"createTime\",\"interval_15\": [{\"templet1\":[{\"driver\":\"devFp\",\"match\":\"phone\"},{\"driver\":\"devFp\", \"match\":\"ip\"}]},{\"templet2\":[{\"driver\":\"inAccount\", \"match\":\"amount\"}]}]}"

val js = JSON.parseObject(jsonStr)
val fieldAll = js.keySet().iterator()
println(fieldAll)
while (fieldAll.hasNext) {
  val field = fieldAll.next() //模板名称
  //每个模板里是一个JsonArray
  if (field.contains("interval")){
    val interval = field.split("_")(1)
    val jsArray = js.getJSONArray(field)
    println("*********"+jsArray)
    for (i <- 0 until jsArray.size()) {
      println(i)
      val jsontemplet = JSON.parseObject(jsArray.getString(i))
      println("~~~~~~~~~~"+jsontemplet)

      val fieldtemplet = jsontemplet.keySet().iterator()
      while(fieldtemplet.hasNext){
        val f = fieldtemplet.next() //模板名称
        if ("templet1".equals(f)) {
          println("111111111111111")
        }
        if ("templet2".equals(f)) {
          println("22222")
        }
      }
    }
  }
}
结果:
js: com.alibaba.fastjson.JSONObject = {"time_name":"createTime","p_end":"20190819","partitionNum":"1000","interval_15":[{"templet1":[{"driver":"devFp","match":"phone"},{"driver":"devFp","match":"ip"}]},{"templet2":[{"driver":"inAccount","match":"amount"}]}]}
fieldAll: java.util.Iterator[String] = java.util.HashMap$KeyIterator@707414e0
java.util.HashMap$KeyIterator@707414e0
*********[{"templet1":[{"driver":"devFp","match":"phone"},{"driver":"devFp","match":"ip"}]},{"templet2":[{"driver":"inAccount","match":"amount"}]}]
0
~~~~~~~~~~{"templet1":[{"driver":"devFp","match":"phone"},{"driver":"devFp","match":"ip"}]}
111111111111111
1
~~~~~~~~~~{"templet2":[{"driver":"inAccount","match":"amount"}]}
22222

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值