mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-09-24 08:44:19 +08:00
Refresh release imports and tutorial
This commit is contained in:
@@ -1477,6 +1477,31 @@ API
|
||||
JsonPrint(node, writer, formatting);
|
||||
});
|
||||
}
|
||||
|
||||
void JsonNodeListSerializer::Serialize(Ptr<Parser> parser, const SourceType& source, DestType& dest)
|
||||
{
|
||||
auto array = Ptr(new JsonArray);
|
||||
for (auto&& package : source)
|
||||
{
|
||||
array->items.Add(package);
|
||||
}
|
||||
dest = JsonToString(array);
|
||||
}
|
||||
|
||||
void JsonNodeListSerializer::Deserialize(Ptr<Parser> parser, const DestType& source, SourceType& dest)
|
||||
{
|
||||
#define ERROR_MESSAGE_PREFIX L"vl::glr::json::JsonNodeListSerializer::Deserialize(Ptr<Parser>, const WString&, SourceType&)#"
|
||||
auto value = JsonParse(source, *parser.Obj());
|
||||
auto array = value.Cast<JsonArray>();
|
||||
CHECK_ERROR(array, ERROR_MESSAGE_PREFIX L"The serialized channel package should be a JsonArray.");
|
||||
|
||||
dest.Clear();
|
||||
for (auto&& package : array->items)
|
||||
{
|
||||
dest.Add(package);
|
||||
}
|
||||
#undef ERROR_MESSAGE_PREFIX
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7720,6 +7745,36 @@ Utility
|
||||
return result;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
XmlElementListSerializer
|
||||
***********************************************************************/
|
||||
|
||||
void XmlElementListSerializer::Serialize(Ptr<Parser> parser, const SourceType& source, DestType& dest)
|
||||
{
|
||||
auto array = Ptr(new XmlElement);
|
||||
array->name.value = L"Array";
|
||||
for (auto&& element : source)
|
||||
{
|
||||
array->subNodes.Add(element);
|
||||
}
|
||||
dest = GenerateToStream([&](StreamWriter& writer)
|
||||
{
|
||||
XmlPrint(array, writer);
|
||||
});
|
||||
}
|
||||
|
||||
void XmlElementListSerializer::Deserialize(Ptr<Parser> parser, const DestType& source, SourceType& dest)
|
||||
{
|
||||
auto array = XmlParseElement(source, *parser.Obj());
|
||||
auto elements = XmlGetElements(array);
|
||||
|
||||
dest.Clear();
|
||||
for (auto&& element : elements)
|
||||
{
|
||||
dest.Add(element);
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
XmlElementWriter
|
||||
***********************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user