修飾子とタイプ | メソッドと説明 |
---|---|
static BigDecimal |
asBigDecimal(Object obj_)
Objectをlongとして解釈する.
|
static boolean |
asBoolean(Object obj_)
オブジェクトをbooleanとして解釈する.
|
static byte |
asByte(Object obj_)
Objectをbyteとして解釈する.
|
static char |
asChar(Object obj_)
Objectをbooleanとして解釈する.
|
static double |
asDouble(Object obj_)
Objectをdoubleとして解釈する.
|
static float |
asFloat(Object obj_)
Objectをfloatとして解釈する.
|
static int |
asInt(Object obj_)
Objectをintとして解釈する.
|
static List<Object> |
asList(Object obj_)
ObjectをListとして解釈
ObjectをList<Object>と解釈します。
|
static long |
asLong(Object obj_)
Objectをlongとして解釈する.
|
static Map<String,Object> |
asMap(Object obj_)
ObjectをMapとして解釈
ObjectをMap<String,Object>と解釈します。
|
static short |
asShort(Object obj_)
Objectをshortとして解釈する.
|
static String |
asString(Object obj_)
ObjectをStringとして解釈する.
|
hiJSON.Probe |
at(int pos_)
指定番目の要素に移動する.
|
hiJSON.Probe |
at(int pos_,
hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
指定位置のオブジェクトProbeにラムダ式を適用する.
|
hiJSON.Probe |
at(String name_)
指定名の要素に移動する.
|
hiJSON.Probe |
at(String name_,
hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
指定名のオブジェクトProbeにラムダ式を適用する.
|
hiJSON.Probe |
atExist(int pos_)
カレントにある指定要素を得る.
|
hiJSON.Probe |
atExist(String name_)
カレントにある指定要素を得る.
|
hiJSON.Probe |
execute(hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
カレントににラムダ式を適用する.
|
hiJSON.Probe |
find(String name_,
hiU.BiConsumerEx<hiJSON.Probe,hiJSON.Probe,Exception> func_)
指定名の要素を探しラムダ式を適用する
ラムダ式の引数は親のProbeと発見した要素のProbeです。
|
hiJSON.Probe |
findOne(String name_,
hiU.BiConsumerEx<hiJSON.Probe,hiJSON.Probe,Exception> func_)
指定名の要素一個を探しラムダ式を適用する
ラムダ式の引数は親のProbeと発見した要素のProbeです。
|
hiJSON.Probe |
forEach(hiU.BiConsumerEx<String,hiJSON.Probe,Exception> func_)
カレントのMapの並びにラムダ式を適用する.
|
hiJSON.Probe |
forEach(hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
リスト要素並びProbeに対してラムダ式を適用する.
|
Object |
get()
カレントのObjectを得る
例えば次の2つは同じオブジェクトを返します。
|
<T> T |
get(hiU.FunctionEx<Object,T,Exception> func_)
ラムダ式で値を得る.
|
Object |
get(int pos_)
指定番目の要素を得る.
|
Object |
get(String name_)
指定名の要素を得る.
|
boolean |
getBoolean(int pos_)
指定番目要素のbooleanを得る.
|
boolean |
getBoolean(String name_)
指定名要素のbooleanを得る.
|
int |
getByte()
カレントのbyte値を得る.
|
int |
getByte(int pos_)
指定番目要素のbyte値を得る.
|
int |
getByte(String name_)
指定名要素のbyte値を得る.
|
byte[] |
getByteArray()
カレントのオブジェクトをbyte配列として解釈する.
|
double |
getDouble()
/**
カレントのdouble値を得る.
|
double |
getDouble(int pos_)
指定番目要素のdouble値を得る.
|
double |
getDouble(String name_)
指定名要素のdouble値を得る.
|
float |
getFloat()
カレントのfloat値を得る.
|
float |
getFloat(int pos_)
指定番目要素のfloat値を得る.
|
float |
getFloat(String name_)
指定名要素のfloat値を得る.
|
int |
getInt()
カレントのint値を得る.
|
int |
getInt(int pos_)
指定番目要素のint値を得る.
|
int |
getInt(String name_)
指定名要素のint値を得る.
|
List<Object> |
getList(int pos_)
指定番目要素のListを得る.
|
List<Object> |
getList(String name_)
指定名要素のListを得る.
|
long |
getLong()
カレントのlong値を得る.
|
long |
getLong(int pos_)
指定番目要素のlong値を得る.
|
long |
getLong(String name_)
指定名要素のlong値を得る.
|
int |
getShort()
カレントのshort値を得る.
|
int |
getShort(int pos_)
指定番目要素のshort値を得る.
|
int |
getShort(String name_)
指定名要素のshort値を得る.
|
String |
getString()
カレントのStringを得る.
|
String |
getString(int pos_)
指定番目要素のStringを得る.
|
String |
getString(String name_)
指定名要素のStringを得る.
|
boolean |
has(int pos_)
カレントに指定位置の要素があるか調べる.
|
boolean |
has(String name_)
カレントに指定名の要素があるか調べる.
|
hiJSON.Probe |
if_exist(int pos_,
hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
指位置のオブジェクト存在する場合にラムダ式を適用する.
|
hiJSON.Probe |
if_exist(String name_,
hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
指定名のオブジェクト存在する場合にラムダ式を適用する.
|
boolean |
isBoolean()
カレントがBooleanか調べる.
|
boolean |
isDouble()
カレントがDouble(数値)か調べる.
|
static boolean |
isJsonObject(Object obj_)
JSONのノードオブジェクトか調べる
次のいずれかの場合真となります。
|
boolean |
isList()
カレントがListか調べる.
|
boolean |
isLong()
カレントがLong(数値)か調べる.
|
boolean |
isMap()
カレントがMapか調べる.
|
boolean |
isNull()
カレントがnullか調べる.
|
boolean |
isNumeric()
カレントがDoubleまたはLong(数値)か調べる.
|
List<hiJSON.Probe> |
list()
要素のProbeリストを得る.
|
hiJSON.Probe |
put(String name_,
Object node_)
カレントの指定名の要素を追加または置き換える.
|
hiJSON.Probe |
remove(String name_)
カレントの指定名要素を削除する
|
int |
size()
現要素のサイズを得る
|
Stream<hiJSON.Probe> |
stream()
リスト要素をProbeのStreamとして得る.
|
hiJSON.Probe |
to(int pos_)
指定番目の要素に移動する.
|
hiJSON.Probe |
to(String name_)
指定名の要素に移動する.
|
public Probe(Object node_)
node_
- ノードオブジェクトpublic int size()
public hiJSON.Probe to(String name_)
カレントが辞書の場合指定名の位置に移動します。
name_
- 要素名public hiJSON.Probe to(int pos_)
数値(0オリジン)で指定される位置に移動します。
Mapの場合でも並びの指定番目に位置付けられます。
pos_
- 要素名public hiJSON.Probe at(String name_)
カレントがMapの場合指定名の要素にしたProbeを得ます。
カレントのProbeに影響を与えませんので次の様なアクセスが可能です。
{ "a":{ "b":{ "x":1, "y":2}, "c":5}}, "d":3}
というデータがあるとして
hiJSON _probe=hiJSON.probe(someObject); int a = _probe.at("a").at("b").getInt("y"); int b = _probe.getInt("d"); // to("a").to("b")の影響を受けない
name_
- 要素名public hiJSON.Probe at(int pos_)
数値(0オリジン)で指定される位置に移動します。
Mapの場合でも並びの指定番目に位置付けられます。
pos_
- 要素名public Object get()
例えば次の2つは同じオブジェクトを返します。
hiJSON.probe(someObject).to("someMember").get(); hiJSON.probe(someObject).get("someMember");
probe()呼び出し直後に呼ばれるとprobe()の引数と同じものが返ります.
Object _obj= hiJSON.probe(someObject).get(); // _objとsomeObjectは同じインスタンスです、
public Object get(int pos_)
pos_
- 指定位置(0オリジン)public static final Map<String,Object> asMap(Object obj_)
ObjectをMap<String,Object>と解釈します。
hiJSONで解析されたObjectはLinkeHashMap<String,Object>ですが、他ツールで解析されたObjectにも適用可能なようにMapとしてあります。
obj_
- ノードオブジェクトpublic static final List<Object> asList(Object obj_)
ObjectをList<Object>と解釈します。
hiJSONで解析されたObjectはArrayList<Object>ですが、他ツールで解析されたObjectにも適用可能なようにListとしてあります。
obj_
- ノードオブジェクトpublic static final double asDouble(Object obj_)
obj_
- ノードObjectpublic static final float asFloat(Object obj_)
obj_
- ノードObjectpublic static final int asInt(Object obj_)
obj_
- ノードObjectpublic static final long asLong(Object obj_)
obj_
- ノードObjectpublic static final short asShort(Object obj_)
obj_
- ノードObjectpublic static final byte asByte(Object obj_)
obj_
- ノードObjectpublic static final BigDecimal asBigDecimal(Object obj_)
obj_
- ノードObjectpublic static boolean asBoolean(Object obj_)
オブジェクトをbooleanとして解釈します。
オブジェクトが文字列の場合、"true"なら真、"false"なら偽となります。
obj_
- ノードObjectpublic static final char asChar(Object obj_)
obj_
- ノードObjectpublic static final String asString(Object obj_)
obj_
- ノードObjectpublic <T> T get(hiU.FunctionEx<Object,T,Exception> func_)
カレント位置の値をラムダ式を介して取得します。
ラムダ式の形式は次のものです
T func(Object obj_ カレント位置のオブジェクト)
T
- ラムダ式の戻り値func_
- ラムダ式public double getDouble()
ObjectがStringの場合も解釈可能です。
public float getFloat()
ObjectがStringの場合も解釈可能です。
public int getInt()
ObjectがStringの場合も解釈可能です。
public long getLong()
ObjectがStringの場合も解釈可能です。
public int getShort()
ObjectがStringの場合も解釈可能です。
public int getByte()
ObjectがStringの場合も解釈可能です。
public double getDouble(String name_)
ObjectがStringの場合も解釈可能です。
name_
- 要素名public float getFloat(String name_)
ObjectがStringの場合も解釈可能です。
name_
- 要素名public int getInt(String name_)
ObjectがStringの場合も解釈可能です。
name_
- 要素名public long getLong(String name_)
ObjectがStringの場合も解釈可能です。
name_
- 要素名public int getShort(String name_)
ObjectがStringの場合も解釈可能です。
name_
- 要素名public int getByte(String name_)
ObjectがStringの場合も解釈可能です。
name_
- 要素名public double getDouble(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public float getFloat(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public List<Object> getList(int pos_)
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public int getInt(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public long getLong(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public int getShort(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public int getByte(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置public String getString()
public String getString(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置指定public boolean getBoolean(String name_)
name_
- 要素名public boolean getBoolean(int pos_)
ObjectがStringの場合も解釈可能です。
カレントがMapの場合でも指定番目の要素となります。
pos_
- 位置指定public List<hiJSON.Probe> list()
例えば次のように繰り返し処理を書くことができます。
String _json_text= "{"+ "'person':["+ " {'surname' :'BOND' ,'given_name' :'JAMES'"+ " 'destination':'Russia','nationarlity':'British'},"+ " {'surname' :'FLOID' ,'given_name' :'HEYWOOD','initial':'R'"+ " 'destination':'MOON' ,'nationarlity':'American'}]}"; Object _node_tree=hiJSON.parse(_json_text).asNode(); for(hiJSON.Probe _p:hiJSON.probe(_node_tree).to("person").list()){ ps.println("My name is "+_p.get("surname")+" , "+ _p.get("given_name")+" "+_p.get("surname")+"."); ps.println(_p.get("destination")+" "+_p.get("nationarlity")+" "+ _p.get("surname")+" "+_p.get("given_name")+ (_p.has("initial")?(" "+_p.get("initial")):"")+"."); } と言った形で繰り返し処理を行うことができます。 次の結果が得られます。 My name is BOND , JAMES BOND. Russia British BOND JAMES. My name is FLOID , HEYWOOD FLOID. MOON American FLOID HEYWOOD R.
public Stream<hiJSON.Probe> stream()
String _json_text= "{"+ "'person':["+ " {'surname' :'BOND' ,'given_name' :'JAMES'"+ " 'destination':'Russia','nationarlity':'British'},"+ " {'surname' :'FLOID' ,'given_name' :'HEYWOOD','initial':'R'"+ " 'destination':'MOON' ,'nationarlity':'American'}]}"; Object _node_tree=hiJSON.parse(_json_text).asNode(); hiJSON.probe(_node_tree).to("person").stream().forEach((_p_)->{try{ ps.println("My name is "+_p_.get("surname")+" , "+ _p_.get("given_name")+" "+_p_.get("surname")+"."); ps.println(_p_.get("destination")+" "+_p_.get("nationarlity")+" "+ _p_.get("surname")+" "+_p_.get("given_name")+ _p_.has("initial")?(" "+_p_.get("initial")):"")+"."); }catch(Exception _ex){}}); と言った形で繰り返し処理を行うことができます。 次の結果が得られます。 My name is BOND , JAMES BOND. Russia British BOND JAMES. My name is FLOID , HEYWOOD FLOID. MOON American FLOID HEYWOOD R.
public hiJSON.Probe forEach(hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
カレントがリストの場合、順次ラムダ式を適用します。ラムダ式の引数は要素のProbeです。
forRach()自体はカレント位置のProbeを返しますので、続けて作業を行うことができます。
次の例では"person"位置のリストに対し2回異なるforEach処理を行っています。
String _json_text= "{"+ "'person':["+ " {'surname' :'BOND' ,'given_name' :'JAMES'"+ " 'destination':'Russia','nationarlity':'British'},"+ " {'surname' :'FLOID' ,'given_name' :'HEYWOOD','initial':'R'"+ " 'destination':'MOON' ,'nationarlity':'American'}]}"; Object _node_tree=hiJSON.parse(_json_text).asNode(); hiJSON.probe(_node_tree).to("person") .forEach((_p_)->{ ps.println("My name is "+_p_.get("surname")+" , "+ _p_.get("given_name")+" "+_p_.get("surname")+"."); }) .forEach((_p_)->{ ps.println(_p_.get("destination")+" "+_p_.get("nationarlity")+" "+ _p_.get("surname")+" "+_p_.get("given_name")+ (_p_.has("initial")?(" "+_p_.get("initial")):"")+"."); }); と言った形で繰り返し処理を行うことができます。 次の結果が得られます。 My name is BOND , JAMES BOND. My name is FLOID , HEYWOOD FLOID. Russia British BOND JAMES. MOON American FLOID HEYWOOD R
func_
- ラムダ式public hiJSON.Probe forEach(hiU.BiConsumerEx<String,hiJSON.Probe,Exception> func_)
ラムダ式の引数は名前と要素のProbeとなります。
func_
- ラムダ式public hiJSON.Probe at(String name_, hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
ラムダ式の引数は要素のProbeです。
name_
- 要素名func_
- ラムダ式public hiJSON.Probe at(int pos_, hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
指定要素が無い場合何も行われません。
ラムダ式の引数は要素のProbeです。
pos_
- 要素名func_
- ラムダ式public hiJSON.Probe if_exist(String name_, hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
要素が存在しない場合は無処理です。
ラムダ式の引数は要素のProbeです。
name_
- 要素名func_
- ラムダ式public hiJSON.Probe if_exist(int pos_, hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
要素が存在しない場合は無処理です。
ラムダ式の引数は要素のProbeです。
pos_
- 位置(0オリジン)func_
- ラムダ式public hiJSON.Probe execute(hiU.ConsumerEx<hiJSON.Probe,Exception> func_)
ラムダ式の引数は要素のProbeです。
func_
- ラムダ式public hiJSON.Probe find(String name_, hiU.BiConsumerEx<hiJSON.Probe,hiJSON.Probe,Exception> func_)
ラムダ式の引数は親のProbeと発見した要素のProbeです。
同じ名前の要素が階層化して存在する場合深い層が先に呼ばれます。
name_
- 名前func_
- ラムダ式public hiJSON.Probe findOne(String name_, hiU.BiConsumerEx<hiJSON.Probe,hiJSON.Probe,Exception> func_)
ラムダ式の引数は親のProbeと発見した要素のProbeです。
同じ名前の要素が階層化して存在する場合深い層は呼ばれません。
name_
- 名前func_
- ラムダ式public boolean has(String name_)
name_
- 名前public boolean has(int pos_)
pos_
- 位置(0オリジン)public hiJSON.Probe atExist(String name_)
name_
- 名前public hiJSON.Probe atExist(int pos_)
pos_
- 位置(0オリジン)public boolean isMap()
public boolean isList()
public boolean isBoolean()
public boolean isDouble()
public boolean isLong()
public boolean isNumeric()
public boolean isNull()
public hiJSON.Probe remove(String name_)
name_
- 名前public hiJSON.Probe put(String name_, Object node_)
name_
- 要素名node_
- 追加または置き換えるnodeオブジェクトpublic byte[] getByteArray()
オブジェクトが配列の場合数値の配列として解釈し、byteの配列にします。
オブジェクトが文字列の場合先頭文字が'#'なら16進数として解釈し、それ以外ならBase64として解釈しbyteの配列とします。
public static boolean isJsonObject(Object obj_)
次のいずれかの場合真となります。
Map,List,String,Double,Boolean
nullは偽となります。
obj_
- 調べるオブジェクト