Add GetStringAnsiView to json value
This commit is contained in:
@@ -2066,7 +2066,7 @@ void VisualScriptingBinaryModule::DeserializeObject(ISerializable::DeserializeSt
|
||||
auto& params = instanceParams->Value.Params;
|
||||
for (auto i = stream.MemberBegin(); i != stream.MemberEnd(); ++i)
|
||||
{
|
||||
StringAnsiView idNameAnsi(i->name.GetString(), i->name.GetStringLength());
|
||||
StringAnsiView idNameAnsi(i->name.GetStringAnsiView());
|
||||
Guid paramId;
|
||||
if (!Guid::Parse(idNameAnsi, paramId))
|
||||
{
|
||||
|
||||
@@ -75,7 +75,7 @@ void FindIds(ISerializable::DeserializeStream& node, Array<Guid>& output)
|
||||
{
|
||||
// Try parse as Guid in format `N` (32 hex chars)
|
||||
Guid id;
|
||||
if (!Guid::Parse(node.GetText(), id))
|
||||
if (!Guid::Parse(node.GetStringAnsiView(), id))
|
||||
output.Add(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ SceneObject* SceneObjectsFactory::Spawn(ISerializable::DeserializeStream& stream
|
||||
LOG(Warning, "Invalid object type (TypeName must be an object type full name string).");
|
||||
return nullptr;
|
||||
}
|
||||
const StringAnsiView typeName(typeNameMember->value.GetString(), typeNameMember->value.GetStringLength());
|
||||
const StringAnsiView typeName(typeNameMember->value.GetStringAnsiView());
|
||||
|
||||
const ScriptingTypeHandle type = Scripting::FindScriptingType(typeName);
|
||||
if (type)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Engine/Core/Types/String.h"
|
||||
#include "Engine/Core/Types/StringView.h"
|
||||
|
||||
// TODO: config RAPIDJSON_SSE2 for rapidjson
|
||||
#define RAPIDJSON_ERROR_CHARTYPE Char
|
||||
|
||||
@@ -74,7 +74,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
|
||||
v.Type = VariantType::Null;
|
||||
const auto mTypeName = SERIALIZE_FIND_MEMBER(stream, "TypeName");
|
||||
if (mTypeName != stream.MemberEnd() && mTypeName->value.IsString())
|
||||
v.SetTypeName(StringAnsiView(mTypeName->value.GetString(), mTypeName->value.GetStringLength()));
|
||||
v.SetTypeName(StringAnsiView(mTypeName->value.GetStringAnsiView()));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -257,7 +257,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
|
||||
break;
|
||||
case VariantType::String:
|
||||
CHECK(value.IsString());
|
||||
v.SetString(StringAnsiView(value.GetString(), value.GetStringLength()));
|
||||
v.SetString(value.GetStringAnsiView());
|
||||
break;
|
||||
case VariantType::Object:
|
||||
Deserialize(value, id, modifier);
|
||||
@@ -328,7 +328,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
|
||||
break;
|
||||
case VariantType::Typename:
|
||||
CHECK(value.IsString());
|
||||
v.SetTypename(StringAnsiView(value.GetString(), value.GetStringLength()));
|
||||
v.SetTypename(value.GetStringAnsiView());
|
||||
break;
|
||||
default:
|
||||
Platform::CheckFailed("", __FILE__, __LINE__);
|
||||
|
||||
@@ -536,7 +536,7 @@ namespace Serialization
|
||||
else if (stream.IsString())
|
||||
{
|
||||
// byte[] encoded as Base64
|
||||
const StringAnsiView streamView(stream.GetString(), stream.GetStringLength());
|
||||
const StringAnsiView streamView(stream.GetStringAnsiView());
|
||||
v.Resize(Encryption::Base64DecodeLength(*streamView, streamView.Length()));
|
||||
Encryption::Base64Decode(*streamView, streamView.Length(), v.Get());
|
||||
}
|
||||
|
||||
1
Source/ThirdParty/rapidjson/document.h
vendored
1
Source/ThirdParty/rapidjson/document.h
vendored
@@ -1648,6 +1648,7 @@ public:
|
||||
//@{
|
||||
|
||||
const Ch* GetString() const { RAPIDJSON_ASSERT(IsString()); return (data_.f.flags & kInlineStrFlag) ? data_.ss.str : GetStringPointer(); }
|
||||
::StringAnsiView GetStringAnsiView() const { RAPIDJSON_ASSERT(IsString()); return data_.f.flags & kInlineStrFlag ? ::StringAnsiView(data_.ss.str, data_.ss.GetLength()) : ::StringAnsiView(GetStringPointer(), data_.s.length); }
|
||||
::String GetText() const
|
||||
{
|
||||
::String result;
|
||||
|
||||
Reference in New Issue
Block a user