okardec

Untitled

Sep 17th, 2020
805
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package core
  2.  
  3. import org.json.JSONObject
  4.  
  5. open class BaseVO {
  6.  
  7.     val fields = mutableMapOf<String, Any>()
  8.  
  9.     constructor(jOb : JSONObject){
  10.  
  11.         ///adicionei este metodo para poder fazer recursivo
  12.         jsonToFields(jOb)
  13.  
  14.         println(fields)
  15.     }
  16.  
  17.  
  18.     /**
  19.      * irá ser invocado até terminar de listar o json
  20.      */
  21.     private fun jsonToFields(jOb : JSONObject){
  22.         jsonToFields(jOb,"")
  23.     }
  24.  
  25.     /**
  26.      * o adjunct insere um valor para cocatenar os valores e evitar sobrepor itens
  27.      */
  28.     private fun jsonToFields(jOb : JSONObject,adjunct: String = ""){
  29.  
  30.         jOb.names().forEach{ i ->
  31.  
  32.             if (jOb.optJSONObject(i.toString()) !=null ) {
  33.                 jsonToFields( jOb.optJSONObject( i.toString() ),  i.toString())
  34.             }else{
  35.                 addField( if (adjunct.isNotEmpty()){ adjunct + "_" } else { ""} + i.toString(),jOb.get( i.toString() ) )
  36.             }
  37.  
  38.         }
  39.  
  40.     }
  41.  
  42.  
  43.     fun addField(fieldName: String, fieldValue: Any){
  44.         fields.put(fieldName,fieldValue)
  45.     }
  46.  
  47.     fun getField(fieldName: String): Any? {
  48.         return fields.get(fieldName)
  49.     }
  50.  
  51. }
RAW Paste Data