5   Num(SIn), Str(SIn), ValV(SIn), KeyValH(SIn) { }
 
   28   return !(*
this == JsonVal);
 
   33         int KeyId = Val->KeyValH.FFirstKeyId();
 
   34         while (Val->KeyValH.FNextKeyId(KeyId)) {
 
   35                 AddToObj(Val->KeyValH.GetKey(KeyId), Val->KeyValH[KeyId]);
 
   41         for (
int ValN = 0; ValN < ValV.
Len(); ValN++) {
 
   42                 Val->AddToArr(ValV[ValN]);
 
   49         for (
int IntN = 0; IntN < IntV.
Len(); IntN++) {
 
   57         for (
int FltN = 0; FltN < FltV.
Len(); FltN++) {
 
   65         for (
int StrN = 0; StrN < StrV.
Len(); StrN++) {
 
  124     Val->PutNull(); Lx.
GetSym();
 
  126     Val->PutBool(
true); Lx.
GetSym();
 
  128     Val->PutBool(
false); Lx.
GetSym();
 
  134     Val->PutArr(); Lx.
GetSym(ValExpect); 
 
  138         Val->AddToArr(SubVal);
 
  153         Val->AddToObj(SubKey, SubVal);
 
  177     MsgStr=Except->GetMsgStr();
 
  193                 for (
int ChN = 0; ChN < UStr.
Len(); ChN++) {
 
  194                         const int UCh = UStr[ChN];
 
  197                                 const char Ch = (char)UCh;
 
  199                                         case '"' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'"'); 
break;
 
  200                                         case '\\' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'\\'); 
break;
 
  201                                         case '/' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'/'); 
break;
 
  202                                         case '\b' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'b'); 
break;
 
  203                                         case '\f' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'f'); 
break;
 
  204                                         case '\n' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'n'); 
break;
 
  205                                         case '\r' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'r'); 
break;
 
  206                                         case '\t' : ChA.
AddCh(
'\\'); ChA.
AddCh(
't'); 
break;
 
  218                 for (
int ChN = 0; ChN < Str.
Len(); ChN++) {
 
  219                         const char Ch = Str[ChN];
 
  220                         if ((Ch & 0x80) == 0) {
 
  223                                         case '"' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'"'); 
break;
 
  224                                         case '\\' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'\\'); 
break;
 
  225                                         case '/' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'/'); 
break;
 
  226                                         case '\b' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'b'); 
break;
 
  227                                         case '\f' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'f'); 
break;
 
  228                                         case '\n' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'n'); 
break;
 
  229                                         case '\r' : ChA.
AddCh(
'\\'); ChA.
AddCh(
'r'); 
break;
 
  230                                         case '\t' : ChA.
AddCh(
'\\'); ChA.
AddCh(
't'); 
break;
 
  231                                         default : ChA.
AddCh(Ch);
 
  249   switch (Val->GetJsonValType()){
 
  253       if (Val->GetBool()){ChA+=
"true";} 
else {ChA+=
"false";} 
break;
 
  255       ChA+=
TStr::Fmt(
"%f", Val->GetNum()); 
break;
 
  260       for (
int ArrValN=0; ArrValN<Val->GetArrVals(); ArrValN++){
 
  261         if (ArrValN>0){ChA+=
", ";}
 
  268       for (
int ObjKeyN=0; ObjKeyN<Val->GetObjKeys(); ObjKeyN++){
 
  269         if (ObjKeyN>0){ChA+=
", ";}
 
  270         TStr ObjKey; 
PJsonVal ObjVal; Val->GetObjKeyVal(ObjKeyN, ObjKey, ObjVal);
 
static void GetChAFromVal(const PJsonVal &Val, TChA &ChA)
 
void Save(TSOut &SOut) const 
 
void AddCh(const char &Ch, const int &MxLen=-1)
 
TSizeTy Len() const 
Returns the number of elements in the vector. 
 
void Save(TSOut &SOut) const 
 
static TUnicode * GetDef()
 
static PJsonVal GetValFromLx(TILx &Lx)
 
static PJsonVal GetValFromStr(const TStr &JsonStr)
 
THash< TStr, PJsonVal > KeyValH
 
void Save(TSOut &SOut) const 
 
bool operator!=(const TJsonVal &JsonVal) const 
 
void Save(TSOut &SOut) const 
 
static void Throw(const TStr &MsgStr)
 
void Save(TSOut &SOut, const bool &IsSmall=false) const 
 
static PSIn New(const TStr &Str)
 
static PJsonVal NewStr(const TStr &Str)
 
void AddToObj(const TStr &KeyNm, const PJsonVal &Val)
 
bool operator==(const TJsonVal &JsonVal) const 
 
static void AddEscapeChAFromStr(const TStr &Str, TChA &ChA)
 
int DecodeUtf8(const TIntV &src, TIntV &dest) const 
 
double GetObjNum(const TStr &Key) const 
 
static TStr GetStrFromVal(const PJsonVal &Val)
 
PJsonVal GetObjKey(const TStr &Key) const 
 
static TStr Fmt(const char *FmtStr,...)
 
bool GetObjBool(const TStr &Key) const 
 
TStr GetObjStr(const TStr &Key) const 
 
TLxSym GetSym(const TFSet &Expect)
 
static PJsonVal GetValFromSIn(const PSIn &SIn)
 
static PJsonVal NewNum(const double &Num)
 
void Save(TSOut &SOut) const 
 
static void AddQChAFromStr(const TStr &Str, TChA &ChA)
 
bool IsObjKey(const TStr &Key) const