Snack3 for java 一个新的微型JSON框架( 二 )

关于三组类型接口的设计(Json object,array,value)

  • 关于json object的操作
-obj() -> Map<String,ONode> //获取节点对象数据结构体(如果不是对象类型,会自动转换)-contains(key:String) -> bool //是否存在对象子节点?-get(key:String) -> child:ONode //获取对象子节点(不存在,生成新的子节点并返回)-getOrNull(key:String) -> child:ONode //获取对象子节点(不存在,返回null)-getNew(key:String) -> child:ONode //生成新的对象子节点,会清除之前的数据-set(key:String,val:Object) -> self:ONode //设置对象的子节点(会自动处理类型)//val:为常规类型或ONode-setNode(key:String,val:ONode) -> self:ONode //设置对象的子节点,值为ONode类型-setAll(obj:ONode) -> self:ONode //设置对象的子节点,将obj的子节点搬过来-setAll(map:Map<String,T>) ->self:ONode //设置对象的子节点,将map的成员搬过来-setAll(map:Map<String,T>, (n,t)->..) ->self:ONode //设置对象的子节点,将map的成员搬过来,并交由代理处置-remove(key:String) //移除对象的子节点-forEach((k,v)->..) //遍历对象的子节点
  • 关于json array的操作
-ary() -> List<ONode> //获取节点数组数据结构体(如果不是数组,会自动转换)-get(index:int) -> child:ONode //获取数组子节点(超界,返回空节点)-getOrNull(index:int) -> child:ONode //获取数组子节点(超界,返回null)-addNew() -> child:ONode //生成新的数组子节点-add(val) -> self:ONode //添加数组子节点 //val:为常规类型或ONode-addNode(val:ONode) -> self:ONode //添加数组子节点,值为ONode类型-addAll(ary:ONode) -> self:ONode //添加数组子节点,将ary的子节点搬过来-addAll(ary:Collection<T>) -> self:ONode //添加数组子节点,将ary的成员点搬过来-addAll(ary:Collection<T>,(n,t)->..) -> self:ONode //添加数组子节点,将ary的成员点搬过来,并交由代理处置-removeAt(index:int) //移除数组的子节点-forEach(v->..) //遍历数组的子节点
  • 关于json value的操作
-val() -> OValue //获取节点值数据结构体(如果不是值类型,会自动转换)-val(val:Object) -> self:ONode //设置节点值 //val:为常规类型或ONode-getString() //获取值并以string输出 //如果节点为对象或数组,则输出json-getShort() //获取值并以short输出...(以下同...)-getInt()-getBoolean()-getLong()-getDate()-getFloat()-getDouble()-getDouble(scale:int)-getChar()关于序列化的特点
  • 对象
{"@type":"...","a":1,"b":"2"}
  • 数组(可以精准反序列化列表类型;需要特性开启)
[{"@type":"..."},[1,2,3]]
【Snack3 for java 一个新的微型JSON框架】


推荐阅读