PJsonVal TJsonVal::GetObjKey(const char *Key) const { EAssertR(IsObj(), "Cannot get property of non-object!"); EAssertR(IsObjKey(Key), TStr::Fmt("Unknown key '%s'", Key)); return KeyValH.GetDat(Key); }
bool TJsonVal::GetObjBool(const char *Key, const bool& DefBool) const { EAssertR(IsObj(), "Cannot get property of non-object!"); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetBool() : DefBool; }
int64 TJsonVal::GetObjInt64(const TStr& Key, const int64& DefInt) const { EAssert(IsObj()); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetInt64() : DefInt; }
PJsonVal TJsonVal::GetObjKey(const TStr& Key) const { EAssertR(IsObj(), "Cannot get property of non-object!"); EAssertR(IsObjKey(Key), "Unknown key '" + Key + "'"); return KeyValH.GetDat(Key); }
void TJsonVal::GetObjFltV(const TStr& Key, TFltV& FltV) const { EAssertR(IsObj(), "Cannot get property of non-object!"); EAssertR(IsObjKey(Key), "Unknown key: " + Key); GetObjKey(Key)->GetArrNumV(FltV); }
void TJsonVal::GetObjStrV(const char *Key, TStrV& StrV) const { EAssertR(IsObj(), "Cannot get property of non-object!"); EAssertR(IsObjKey(Key), "Unknown key: " + TStr(Key)); GetObjKey(Key)->GetArrStrV(StrV); }
double TJsonVal::GetObjNum(const char *Key, const double& DefNum) const { EAssert(IsObj()); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetNum() : DefNum; }
uint64 TJsonVal::GetObjUInt64(const char *Key, const uint64& DefInt) const { EAssertR(IsObj(), "Cannot get property of non-object!"); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetUInt64() : DefInt; }
PJsonVal TJsonVal::GetObjKey(const char *Key) const { EAssert(IsObj()); EAssertR(IsObjKey(Key), TStr::Fmt("Unknown key '%s'", Key)); return KeyValH.GetDat(Key); }
bool TJsonVal::GetObjBool(const char *Key, const bool& DefBool) const { EAssert(IsObj()); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetBool() : DefBool; }
PJsonVal TJsonVal::GetObjKey(const TStr& Key) const { EAssert(IsObj()); EAssertR(IsObjKey(Key), "Unknown key '" + Key + "'"); return KeyValH.GetDat(Key); }
void TJsonVal::GetObjFltV(const TStr& Key, TFltV& FltV) const { EAssert(IsObj()); EAssert(IsObjKey(Key)); GetObjKey(Key)->GetArrNumV(FltV); }
uint64 TJsonVal::GetObjUInt64(const char *Key, const uint64& DefInt) const { EAssert(IsObj()); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetUInt64() : DefInt; }
double TJsonVal::GetObjNum(const char *Key, const double& DefNum) const { EAssertR(IsObj(), "Cannot get property of non-object!"); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetNum() : DefNum; }
int TJsonVal::GetObjInt(const char *Key, const int& DefInt) const { EAssert(IsObj()); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetInt() : DefInt; }
int TJsonVal::GetObjInt(const TStr& Key, const int& DefInt) const { EAssertR(IsObj(), "Cannot get property of non-object!"); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetInt() : DefInt; }
void TJsonVal::GetObjIntV(const TStr& Key, TIntV& IntV) const { EAssert(IsObj()); EAssert(IsObjKey(Key)); GetObjKey(Key)->GetArrIntV(IntV); }
void TJsonVal::GetObjUInt64V(const TStr& Key, TUInt64V& UInt64V) const { EAssertR(IsObj(), "Cannot get property of non-object!"); EAssertR(IsObjKey(Key), "Unknown key: " + Key); GetObjKey(Key)->GetArrUInt64V(UInt64V); }
TStr TJsonVal::GetObjStr(const char *Key, const TStr& DefStr) const { EAssert(IsObj()); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetStr() : DefStr; }
TStr TJsonVal::GetObjStr(const char *Key, const TStr& DefStr) const { EAssertR(IsObj(), "Cannot get property of non-object!"); return (IsObjKey(Key)) ? KeyValH.GetDat(Key)->GetStr() : DefStr; }
void TJsonVal::GetObjStrV(const char *Key, TStrV& StrV) const { EAssert(IsObj()); EAssert(IsObjKey(Key)); GetObjKey(Key)->GetArrStrV(StrV); }
void TJsonVal::AssertObjKey(const TStr& Key, const TStr& Fun) { // missing key or key not string if (!IsObjKey(Key)) { throw TExcept::New("Exception in function `" + Fun + "`: missing JSON property:`" + Key + "`."); } }
PJsonVal TJsonVal::GetObjKey(const char *Key) const { EAssert(IsObj()); EAssert(IsObjKey(Key)); return KeyValH.GetDat(Key); }