MCPcopy Create free account
hub / github.com/MariaDB/server / SerializeValue

Method SerializeValue

storage/connect/json.cpp:1009–1045  ·  view source on GitHub ↗

/ Serialize a JSON Value. */ /

Source from the content-addressed store, hash-verified

1007/* Serialize a JSON Value. */
1008/***********************************************************************/
1009bool JDOC::SerializeValue(PJVAL jvp)
1010{
1011 char buf[64];
1012 PJAR jap;
1013 PJOB jop;
1014 //PVL vlp;
1015
1016 if ((jap = jvp->GetArray()))
1017 return SerializeArray(jap, false);
1018 else if ((jop = jvp->GetObject()))
1019 return SerializeObject(jop);
1020//else if (!(vlp = jvp->Val))
1021// return js->WriteStr("null");
1022 else switch (jvp->DataType) {
1023 case TYPE_BOOL:
1024 return js->WriteStr(jvp->B ? "true" : "false");
1025 case TYPE_STRG:
1026 case TYPE_DTM:
1027 return js->Escape(jvp->Strp);
1028 case TYPE_INTG:
1029 snprintf(buf, sizeof(buf), "%d", jvp->N);
1030 return js->WriteStr(buf);
1031 case TYPE_BINT:
1032 snprintf(buf, sizeof(buf), "%lld", jvp->LLn);
1033 return js->WriteStr(buf);
1034 case TYPE_DBL: // dfp to limit to the default number of decimals
1035 snprintf(buf, sizeof(buf), "%.*f", MY_MIN(jvp->Nd, dfp), jvp->F);
1036 return js->WriteStr(buf);
1037 case TYPE_NULL:
1038 return js->WriteStr("null");
1039 default:
1040 return js->WriteStr("???"); // TODO
1041 } // endswitch Type
1042
1043 strcpy(js->g->Message, "Unrecognized value");
1044 return true;
1045} // end of SerializeValue
1046
1047/* -------------------------- Class JOBJECT -------------------------- */
1048

Callers 1

SerializeFunction · 0.45

Calls 4

WriteStrMethod · 0.80
EscapeMethod · 0.80
GetArrayMethod · 0.45
GetObjectMethod · 0.45

Tested by

no test coverage detected