This commit is contained in:
2022-05-23 21:37:38 +08:00
parent a0f64376e9
commit 516b9b993d
5 changed files with 78 additions and 56 deletions

View File

@@ -1140,7 +1140,7 @@ int squirrel::Jsoner_STL(uint32_t v)
}
}
break;
case OT_STRING:
case OT_STRING://String类型
{
if (Json_STL.count(Name) == 0)//如果这个hash不存在 就返回
@@ -1159,7 +1159,6 @@ int squirrel::Jsoner_STL(uint32_t v)
std::vector<std::string> Data;
DNFTOOL::Split(key, Data);
rapidjson::Value Vbuffer;
for (int i = 0; i < Data.size(); i++)
{
if (i == 0)
@@ -1168,33 +1167,44 @@ int squirrel::Jsoner_STL(uint32_t v)
}
else if (DNFTOOL::isNum(Data[i].c_str()) != 0)
{
Vbuffer = Vbuffer[atoi(Data[i].c_str())];
if(Vbuffer.Empty() == 0)Vbuffer = Vbuffer[atoi(Data[i].c_str())];
}
else
{
Vbuffer = Vbuffer[Data[i].c_str()];
if (Vbuffer.Empty() == 0)Vbuffer = Vbuffer[Data[i].c_str()];
}
}
if (Vbuffer.IsString())
if (Vbuffer.Empty() == false || (Vbuffer.IsInt() && Vbuffer.GetInt()==0))
{
wchar_t* buffer = DNFTOOL::charTowchar_t((char*)Vbuffer.GetString());
SQPushString(v, buffer, wcslen(buffer));
if (Vbuffer.IsString())
{
wchar_t* buffer = DNFTOOL::charTowchar_t((char*)Vbuffer.GetString());
SQPushString(v, buffer, wcslen(buffer));
return 1;
}
if (Vbuffer.IsBool())
{
SQPushBool(v, Vbuffer.GetBool());
return 1;
}
if (Vbuffer.IsInt())
{
SQPushInt(v, Vbuffer.GetInt());
return 1;
}
if (Vbuffer.IsFloat())
{
SQPushFloat(v, Vbuffer.GetFloat());
return 1;
}
}
if (Vbuffer.IsBool())
else
{
SQPushBool(v, Vbuffer.GetBool());
SQPushBool(v, false);
return 1;
}
if (Vbuffer.IsInt())
{
SQPushInt(v, Vbuffer.GetInt());
}
if (Vbuffer.IsFloat())
{
SQPushFloat(v, Vbuffer.GetFloat());
}
return 1;
}
break;
}