• 所见即所得JSON


    题目

     {
     "A":"a1",
     "B":"b1",
     "C":{
       "D":"d1",
       "E":{
         "F":{
            "G":[{"H":"h1"},{"H":"h2"}]
             }
           }
         }
     }
    

    输出

    A:a1
    B:b1
    C.D:d1
    C.E.F.G[0].H:h1
    C.E.F.G[1].H:h2
    

    code

      def jsons(par: String, str: String): Unit = {
        val json = JSON.parseObject(str)
        json.entrySet().forEach(e=>{
          val value = e.getValue
          val key = e.getKey
          // 先找出当前路径
          val curPath = if (par.nonEmpty) par + ":" + key else "" + key
    
          // 如果获得的字符串以 { 开头则是一个对象 如果是以 [ 开头则是一个数组
          // 其他情况则是需要输出的字符串
          if (value.toString.startsWith("{")) {
            jsons(curPath, value.toString)
          } else if (value.toString.startsWith("[")) {
            val arr = JSON.parseArray(value.toString)
            arr.toArray.indices.foreach(i=>{
              val a = arr.get(i)
              // 如果是数组看起来还需要加上元素下标
              jsons(curPath+s"[$i]", a.toString)
            })
          } else {
            println(curPath +":"+ value.toString)
          }
        })
      }
    
  • 相关阅读:
    数组,一维,二维,多维
    类函数:string、math
    while和for的内嵌
    循环语言(for)
    选择语言之switch case
    程序语言
    语言、数据和运算符
    原理之一,进制转换
    HTML第一部分
    结构体共用变量 递归
  • 原文地址:https://www.cnblogs.com/chinashenkai/p/15386165.html
Copyright © 2020-2023  润新知