如何使用FJsonSerializer :: Deserialize()在虚幻引擎中反序列化JSON?

时间:2019-04-05 15:20:18

标签: json visual-studio unreal-engine4

我试图在虚幻引擎4中使用FJsonSerializer对Json进行反序列化,但遇到未解决的外部符号错误LNK2019。我了解LNK2019是什么,但是在这种情况下,我看不到是什么原因造成的。

此代码位于我的编辑器插件的EdModeTookit内。

我的代码

//JSON object for test
FString JsonString = "{'word': 'hello'}";

//JSON object to hold result
TSharedPtr<FJsonObject> JsonObject;

//JSON reader
const TSharedRef<TJsonReader<TCHAR>> Reader = TJsonReaderFactory<TCHAR>::Create(JsonString);

//Deserialize
if (FJsonSerializer::Deserialize(Reader, JsonObject)) {
    UE_LOG(LogTemp, Log, TEXT("Deserialized JSON"));
}

编译时,出现38个LNK2019未解决的符号错误。这是前3个

严重性代码描述项目文件行抑制状态 错误LNK2019无法解析的外部符号“ __declspec(dllimport)public:__cdecl FJsonValueString :: FJsonValueString(class FString const&)”(__imp _ ?? 0FJsonValueString @@ QEAA @ AEBVFString @@@@ Z)在函数“ private:static bool __cdecl FJsonSerializer”中引用:Deserialize(TSharedRef,0> const&,struct FJsonSerializer :: StackState&)“(?? $ Deserialize @ _W @ FJsonSerializer @@ CA_NAEBV?$ TSharedRef @ V?$ TJsonReader @ _W @@ $ 0A @@@@ AEAUStackState @ 0 @@ Z)BayArea_I45 D:\ Doccuments \ Unreal Projects \ BayArea_I45 \ Intermediate \ ProjectFiles \ Module.TrafficSim.cpp.obj 1

严重性代码描述项目文件行抑制状态 错误LNK2019无法解析的外部符号“ __declspec(dllimport)public:virtual __cdecl FJsonValueString ::〜FJsonValueString(void)”(__imp _ ?? 1FJsonValueString @@ UEAA @ XZ)在函数“ public:virtual void * __cdecl FJsonValueString ::`标量删除中引用destructor'(未签名的int)”(?? _ GFJsonValueString @@ UEAAPEAXI @ Z)BayArea_I45 D:\ Doccuments \ Unreal Projects \ BayArea_I45 \ Intermediate \ ProjectFiles \ Module.TrafficSim.cpp.obj 1

严重性代码描述项目文件行抑制状态 错误LNK2019无法解析的外部符号“ __declspec(dllimport)public:__cdecl FJsonValueNumber :: FJsonValueNumber(double)”(__ imp _ ?? 0FJsonValueNumber @@ QEAA @ N @ Z)在函数“私有:静态布尔值__cdecl FJsonSerializer :: Deserialize(:TShared类)中引用” ,0> const&,struct FJsonSerializer :: StackState&)“(?? $ Deserialize @ _W @ FJsonSerializer @@ CA_NAEBV?$ TSharedRef @ V?$ TJsonReader @ _W @@ $ 0A @@@ AEAUStackState @ 0 @@ Z) BayArea_I45 D:\ Doccuments \ Unreal Projects \ BayArea_I45 \ Intermediate \ ProjectFiles \ Module.TrafficSim.cpp.obj 1

我真的不知道为什么会出错,因为该代码似乎与文档相符,而且我看到其他人声称已经成功使用了类似的代码。

0 个答案:

没有答案