UE4 Josn
三种形式的json文件
1、
[
"6L42J5RVAVZNOPTUKE888888",
"6L4JOEZVAVQE6PTULQ888888"
]
TMap<FString, TSharedPtr<FJsonValue>> InstanceNameWithJsonValue;
if (FPaths::FileExists(ArchiMeta))
{
FString JsonString;
if (FFileHelper::LoadFileToString(JsonString, *ArchiMeta))
{
TArray<TSharedPtr<FJsonValue>> JsonObjects;
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString);
if (FJsonSerializer::Deserialize(Reader, JsonObjects))
{
for (auto JsonObject : JsonObjects)
{
float CurrPolygonOffset = 0;
FString Group = JsonObject->AsString()
}
}
}
}
2、
[
{
"group": "MA2OKDNMDEDXCAABAAAAABI8_beam_mesh_143124_0",
"category": "finishing",
"type": "beam",
"storey": 1,
"roomID": "NULL",
"species": "NULL"
},
{
"group": "MA2OKDNMDEDXCAABAAAAABI8_beam_mesh_143138_0",
"category": "finishing",
"type": "beam",
"storey": 1,
"roomID": "NULL",
"species": "NULL"
}
]
TMap<FString, TSharedPtr<FJsonValue>> InstanceNameWithJsonValue;
if (FPaths::FileExists(ArchiMeta))
{
FString JsonString;
if (FFileHelper::LoadFileToString(JsonString, *ArchiMeta))
{
TArray<TSharedPtr<FJsonValue>> JsonObjects;
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString);
if (FJsonSerializer::Deserialize(Reader, JsonObjects))
{
for (auto JsonObject : JsonObjects)
{
float CurrPolygonOffset = 0;
FString Group = JsonObject->AsObject()->GetStringField("group");
FString AssetName;
FString Component;
bool HasComponent = JsonObject->AsObject()->TryGetStringField("component", Component);
if (HasComponent)
{
AssetName = Component;
}
else
{
AssetName = Group;// AvatarString(Group);
}
InstanceNameWithJsonValue.Emplace(AssetName, JsonObject);
}
}
}
}
3、
{
"fp": "c-007",
"mesh_id": "6CF2J3ETDD522EK6KE888888"
}
TSharedPtr<FJsonObject> MeshStatusJsonObject;
FString JsonString1;
if (FFileHelper::LoadFileToString(JsonString1, *FurnitureMeta))
{
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString1);
if (FJsonSerializer::Deserialize(Reader, MeshStatusJsonObject))
{
//do nothing
}
}
已经是JsonObject,可以直接使用了。
if (FPaths::FileExists(filename))
{
FString JsonString;
if (FFileHelper::LoadFileToString(JsonString, *filename))
{
TSharedPtr<FJsonObject> JsonObject;
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(JsonString);
if (FJsonSerializer::Deserialize(Reader, JsonObject))
{
TMap<FString, TSharedPtr<FJsonValue>> KeyValue = JsonObject->Values;
for (auto It = KeyValue.CreateConstIterator(); It; ++It)
{
//FString Key = *It.Key();
FString Key = It->Key;
UE_LOG(LogImportMat, Display, TEXT("key:%s"),*Key);
FString Value = (*It->Value).AsString();
UE_LOG(LogImportMat, Display, TEXT("value:%s"),*Value);
FString Value1 = (*KeyValue.Find(Key))->AsString();
UE_LOG(LogImportMat, Display, TEXT("value:%s"),*Value1);
break;
//CurrImportData = NewObject<UAutomatedAssetImportData>(this);
}
}
}
}
还没有评论,来说两句吧...