本文整理汇总了C++中JsonIO类的典型用法代码示例。如果您正苦于以下问题:C++ JsonIO类的具体用法?C++ JsonIO怎么用?C++ JsonIO使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了JsonIO类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Jsonize
template<> void Jsonize(JsonIO& io, Time& var)
{
if(io.IsLoading()) {
const Value& v = io.Get();
if(IsNull(v)) {
var = Null;
return;
}
if(IsString(v)) {
String text = v;
if(text.GetCount() > 15) {
Time tm;
tm.year = ScanInt(text.Left(4));
tm.month = ScanInt(text.Mid(4, 2));
tm.day = ScanInt(text.Mid(6, 2));
tm.hour = ScanInt(text.Mid(9, 2));
tm.minute = ScanInt(text.Mid(12, 2));
tm.second = ScanInt(text.Mid(15));
if(tm.IsValid()) {
var = tm;
return;
}
}
}
throw JsonizeError("string expected for Time value");
}
else
if(IsNull(var))
io.Set(Null);
else
io.Set(Format("%04d%02d%02d`T%02d:%02d:%02d",
var.year, var.month, var.day, var.hour, var.minute, var.second));
}
示例2: min
void ValueMap::Data::Jsonize(JsonIO& jio)
{
if(jio.IsStoring()) {
ValueArray va;
int n = min(value.GetCount(), key.GetCount());
for(int i = 0; i < n; i++) {
ValueMap m;
m.Add("key", StoreAsJsonValue(key[i]));
m.Add("value", StoreAsJsonValue(value[i]));
va.Add(m);
}
jio.Set(va);
}
else {
Value va = jio.Get();
key.Clear();
value.Clear();
for(int i = 0; i < va.GetCount(); i++) {
Value k, v;
LoadFromJsonValue(k, va[i]["key"]);
LoadFromJsonValue(v, va[i]["value"]);
key.Add(k);
value.Add(v);
}
}
}
示例3: Jsonize
template<> void Jsonize(JsonIO& io, WString& var)
{
if(io.IsLoading()) {
const Value& v = io.Get();
if(IsString(v))
var = v;
else
throw JsonizeError("string expected");
}
else
io.Set(var);
}
示例4: Jsonize
void ValueMap::Jsonize(JsonIO& jio)
{
if(jio.IsLoading()) {
data->Release();
Create();
}
data->Jsonize(jio);
}