聲明:所有權利保留。
轉載必須說明出處:http://blog.csdn.net/cartzhang/article/details/43794409
Json的Writer博客地址:
http://blog.csdn.net/cartzhang/article/details/41009343 ?[UE4的Json讀寫方式<一>](http://blog.csdn.net/cartzhang/article/details/41009343)
## UE4 的json讀寫方式
### 一、UE4的Json解析代碼
有網友說UE4的解析有問題,解析出錯。個人覺得應該是Json格式有問題。或解析的對象不正確,對象或數組用來對應的解析方式來解析的。
解析方式有兩種:類名為:FJsonSerializer,頭文件名稱為JsonSerializer.h
~~~
template <class CharType>
static bool Deserialize( const TSharedRef< TJsonReader<CharType> >& Reader, TArray< TSharedPtr<FJsonValue> >& OutArray )
{
StackState State;
if ( !Deserialize( Reader, /*OUT*/State ) )
{
return false;
}
if ( State.Object.IsValid() )
{
return false;
}
OutArray = State.Array;
return true;
}
template <class CharType>
static bool Deserialize( const TSharedRef< TJsonReader<CharType> >& Reader, TSharedPtr<FJsonObject>& OutObject )
{
StackState State;
if ( !Deserialize( Reader, /*OUT*/State ) )
{
return false;
}
if ( !State.Object.IsValid() )
{
return false;
}
OutObject = State.Object;
return true;
}
~~~
可以看出,第一個是針對數組的,第二個是針對Json對象的。請注意分別。
### 二、樣例代碼
CPP中包含頭文件#include "Json.h"。
~~~
void ATestPhysics1Character::JsonDeserialize()
{
FString JsonValue = "[{\"author\":\"4446545646544\"},{\"name\":\"jack\"}]";
FString JsonStr;
TArray<TSharedPtr<FJsonValue>> JsonParsed;
TSharedRef< TJsonReader<TCHAR> > JsonReader = TJsonReaderFactory<TCHAR>::Create(JsonValue);
bool BFlag = FJsonSerializer::Deserialize(JsonReader, JsonParsed);
if (BFlag)
{
int ArrayNumber = JsonParsed.Num();
if (ArrayNumber == 2)
{
FString FStringAuthor = JsonParsed[0]->AsObject()->GetStringField("author");
if (GEngine)
{
FString TmpString = "author :" + FStringAuthor;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TmpString);
}
FString FStringName = JsonParsed[1]->AsObject()->GetStringField("name");
if (GEngine)
{
FString TmpString = "name :" + FStringName;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TmpString);
}
}
}
}
~~~
代碼不嚴謹,但是是個樣子。
### 三、結果截圖

================
若有問題,請隨時聯系!
感謝瀏覽!
- 前言
- UE4在VS2013中各個編譯配置代表意義
- UE4的JSON讀寫方式&lt;一&gt;
- UE4.5.0的Kinect插件(Plugin)&lt;一&gt;
- UE4.5.0的Kinect插件(Plugin)---插件使用說明&lt;二&gt;
- UE4的JSON讀寫方式&lt;二&gt;
- 熱烈慶祝UE4完全免費Free---GitHub上源碼的關聯方法
- Kinect舒適區范圍--UE4 的Blueprint測試范例
- UE4制作插件的插件神器pluginCreator
- 美輪美奐宇宙星空制作神器Spacescape
- OCulus Rift 游戲開發六原則
- 給虛幻4添加內存跟蹤功能