UE4 读取Json

UE4 读取Json

添加模块

“Json”, “JsonUtilities”

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" , "Json", "JsonUtilities" });

新建蓝图函数库文件

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MainBlueprintFunctionLibrary.generated.h"

/**
 * 
 */
UCLASS()
class TESTPROJECT_API UMainBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()


	//读取字符串类型
	UFUNCTION(BlueprintCallable,Category="Json")
		static FString ReadJsonString(FString _path, FString _fieldName);

	//读取bool类型
	UFUNCTION(BlueprintCallable, Category = "Json")
		static bool ReadJsonBool(FString _path, FString _fieldName);

	//读取数字类型
	UFUNCTION(BlueprintCallable, Category = "Json")
		static float ReadJsonNum(FString _path, FString _fieldName);
};
#include "MainBlueprintFunctionLibrary.h"
#include "Serialization/JsonReader.h"
#include "Serialization/JsonSerializer.h"

FString UMainBlueprintFunctionLibrary::ReadJsonString(FString _path,FString _fieldName)
{

	FString returnString;
	FString path = FPaths::ProjectContentDir() + TEXT("/")+ _path;
	FString reslutString;
	if (FPaths::FileExists(path))
	{

		FFileHelper::LoadFileToString(reslutString, *path);
		TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);
		TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(reslutString);
		if (FJsonSerializer::Deserialize(Reader, JsonObject))
		{
			returnString = JsonObject->GetStringField(_fieldName);
		}
	}

	return returnString;
}

bool UMainBlueprintFunctionLibrary::ReadJsonBool(FString _path, FString _fieldName)
{

	bool returnBool;
	FString path = FPaths::ProjectContentDir() + TEXT("/") + _path;
	FString reslutString;
	if (FPaths::FileExists(path))
	{

		FFileHelper::LoadFileToString(reslutString, *path);
		TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);
		TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(reslutString);
		if (FJsonSerializer::Deserialize(Reader, JsonObject))
		{
			returnBool = JsonObject->GetBoolField(_fieldName);
		}
	}

	return returnBool;
}

float UMainBlueprintFunctionLibrary::ReadJsonNum(FString _path, FString _fieldName)
{

	float renturnNum;
	FString path = FPaths::ProjectContentDir() + TEXT("/") + _path;
	FString reslutString;
	if (FPaths::FileExists(path))
	{

		FFileHelper::LoadFileToString(reslutString, *path);
		TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);
		TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(reslutString);
		if (FJsonSerializer::Deserialize(Reader, JsonObject))
		{
			renturnNum = JsonObject->GetNumberField(_fieldName);
		}
	}

	return renturnNum;
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值