ue4 C++ json数据的读写

这是改变恢复机制的json文件的例子

//写入

TSharedPtr<FJsonObject> RootObject = MakeShareable(newFJsonObject);

TArray< TSharedPtr<FJsonValue> > PackagesThatCanBeRestored;

TSharedPtr<FJsonObject> EntryObject = MakeShareable(new FJsonObject);

EntryObject->SetStringField(TEXT("PackagePathName"), TEXT("Temp/Untitled_1"));

EntryObject->SetStringField(TEXT("AutoSavePath"), TEXT("Temp/Untitled_1_Auto1.umap"));

TSharedPtr<FJsonValue> EntryValue = MakeShareable(new FJsonValueObject(EntryObject));

PackagesThatCanBeRestored.Add(EntryValue);

RootObject->SetBoolField(TEXT("RestoreEnabled"), true);

RootObject->SetArrayField(TEXT("Packages"), PackagesThatCanBeRestored);

constFStringFilename = FPaths::GameSavedDir() /TEXT("Autosaves") /TEXT("PackageRestoreData.json");

FArchive* constFileAr = IFileManager::Get().CreateFileWriter(*Filename, FILEWRITE_EvenIfReadOnly);

if (FileAr)

{

TSharedRef<TJsonWriter< TCHAR, TPrettyJsonPrintPolicy<TCHAR> >> Writer = TJsonWriterFactory< TCHAR, TPrettyJsonPrintPolicy<TCHAR> >::Create(FileAr);

FJsonSerializer::Serialize(RootObject.ToSharedRef(), Writer);

FileAr->Close();

}

// 读取本地json文件

const FString Filename = FPaths::GameSavedDir() / TEXT("Autosaves") / TEXT("PackageRestoreData.json");

FArchive* const FileAr = IFileManager::Get().CreateFileReader(*Filename);

bool bJsonLoaded = false;

TSharedPtr<FJsonObject> RootObject = MakeShareable(new FJsonObject);

{

TSharedRef<TJsonReader<TCHAR>> Reader = TJsonReaderFactory<TCHAR>::Create(FileAr);

bJsonLoaded = FJsonSerializer::Deserialize(Reader, RootObject);

FileAr->Close();

}

TMap<FString, FString> PackagesThatCanBeRestored;

TArray< TSharedPtr<FJsonValue> > PackagesThatCanBeRestoredArray = RootObject->GetArrayField(TEXT("Packages"));

int32 TiRen = RootObject->GetIntegerField(TEXT("TiRen"));

for (auto It = PackagesThatCanBeRestoredArray.CreateConstIterator(); It; ++It)

{

TSharedPtr<FJsonObject> EntryObject = (*It)->AsObject();

const FString PackagePathName = EntryObject->GetStringField(TEXT("PackagePathName"));

const FString AutoSavePath = EntryObject->GetStringField(TEXT("AutoSavePath"));

PackagesThatCanBeRestored.Add(PackagePathName, AutoSavePath);

}

for (auto It = PackagesThatCanBeRestored.CreateConstIterator(); It; ++It)

{

if (TiRen == 1)

{

EditorStartupMap = FPaths::GameContentDir() / TEXT("Autosaves") / It->Value;

}

else

{

EditorStartupMap = AutoSaveUtils::GetAutoSaveDir() / It->Value;

}

}

时间: 2024-11-09 02:56:13

ue4 C++ json数据的读写的相关文章

UE4的JSON读写方式&amp;lt;一&amp;gt;

声明:全部权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/41009343 UE4的Json的解析博客地址: http://blog.csdn.net/cartzhang/article/details/43794409 UE4的Json读写方式<二> UE4 的json读写方式 JSON 的解析有非常多开源库. UE4的JSON使用在代码的Public->Serialization中. 头文件包括:Json.h

UE4的JSON读写方式

UE4 的json读写方式 JSON 的解析有很多开源库.UE4的JSON使用在代码的Public->Serialization中. 头文件包含:Json.h Json的读写创建是static形成的单例模式,有JsonWrite或JsonReader的Factory来创建(Create)出来. 以读方式为例子: 读的代码: float _score = MyPlayerState->GetScore(); FString _player_name = MyPlayerState->Get

python 读写json数据

json 模块提供了一种很简单的方式来编码和解码JSON 数据.其中两个主要的函数是json.dumps() 和json.loads() ,要比其他序列化函数库如pickle 的接口少得多.下面演示 1.如何将一个Python 数据结构转换为JSON 2.如何将一个JSON 编码的字符串转换回一个Python 数据结构 import json data={ 'name':'AWQA', 'shares':100, 'price':542.33 } json_str=json.dumps(data

在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据

SpringMVC转换JSON数据(1)

SpringMVC提供了处理JSON格式请求/响应的        HttpMessageConverter:MappingJackson2HttpMessageConverter.利用Jackson开源类包处理JSON格式的请求或响应消息. 我们需要做的: 在Spring容器中为RequestmappingHandlerAdapter装配处理JSON的HttpMessageConverter 在交互过程中请求Accept指定的MIME类型 org.springframework.web.bin

[Unity3D] 关于txt,xml,json文件的读写,及外部文件(夹)的创建

转载自贴吧:http://tieba.baidu.com/p/2825006787 一.关于txt纯文本的读写 其实.txt,.xml,.json这类文件都属于文本文件,类似的还有.lrc歌词文件,.ini配置文件,.reg注册表文件等等,这类文件所储存的内容都是文本,只是各自有它们自己的格式,便于某些时候专用识别,所以读取txt文本是最基础的文本解析. 静态内部读取txt文本: 这是最简单的方式,建立TextAsset,直接把文本文件拖上去,就可以用了,public TextAsset Txt

QJsonDocument实现Qt下JSON文档读写

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QJsonDocument实现Qt下JSON文档读写     本文地址:http://techieliang.com/2017/12/718/ 文章目录 1. 介绍  1.1. 错误分类  1.2. Json内容读写  1.3. 数据类型 2. 读写操作  2.1. json范例 3. 创建 4. 解析 5. 其他 1. 介绍 Qt提供了一系列类以供进行Json 文档的读写,分别为: QJs

SpringMVC返回JSON数据以及文件上传、过滤静态资源

返回JSON数据 在如今前后端分离的趋势下,后端基本不需要再去关心前端页面的事情,只需要把数据处理好并通过相应的接口返回数据给前端即可.在SpringMVC中,我们可以通过@ResponseBody注解来返回JSON数据或者是XML数据. 这个注解的作用是将控制器方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,也就是HTTP响应的内容体,一般我们都是用来返回JSON数据,因为默认是按JSON格式进行转换的. 需要注意的是,在使用此注解之后不会再走视图解

轻松应对多层JSON数据计算与入库

图片和表不方便复制  详情请阅读原文http://c.raqsoft.com.cn/article/1536633176729?r=niu JSON作为一种轻量级的数据交换格式,因其易于读写和交互的特点,已逐渐成为主流的数据类型之一.常见的编程语言大多都对 JSON 的读取与解析提供了接口,但是接下来如何把多层 JSON 数据经过筛选.计算并展开成二维数据,就需要开发人员去头疼了.本文就为大家分享一下如何利用集算器 SPL(结构化处理语言)轻松解决 JSON 数据解析入库的问题. JSON 数据