ue4 unreal4 json序列化工具 数据转成字符串等

首先说一个也能序列化的插件 VaRest 这个能序列化能发请求,但是序列化这块不太好用,可能是我不怎么会用吧。。。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

正式介绍一下今天的主角插件 JsonBlueprint 

是免费的!是免费的!是免费的!

虚幻商城 搜索 json

ue4 unreal4 json序列化工具 数据转成字符串等

 

就是这个插件啦~~~

ue4 unreal4 json序列化工具 数据转成字符串等

 

说实话我真的没找到api。。。

虽然我感觉所有api在他的图片预览里面已经出现了,但是琢磨这玩意也要一会儿,挺麻烦的(其实更方便自己

写个常规操作指南还是比较方便的
(安装:安装到引擎->进项目->编辑->插件->启用插件->重启)

(安装:安装到引擎->进项目->Edit->Plugins->Enable->RestartNow)

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等

好了安装成功

----------------------------------------------------------------正文开始---------------------------------------------------------

先介绍常用节点吧

 

1.make节点,用于将各类基础数据类型转换成插件识别的对象

ue4 unreal4 json序列化工具 数据转成字符串等

2.创建json对象 纯函数 JsonMake 这个对象就是一个{}

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等

3.创建json键值对 纯函数 JsonMakeField

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等

json Object就是2里面的json对象

field Name 是键的名称

value 是由1创建出来的统一值

4.用于查看是否拥有该键 纯函数 JsonHasField

ue4 unreal4 json序列化工具 数据转成字符串等

5.序列化为字符串 ToString(JsonObject)

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等

还有挺多比较高级的节点,比如setField makeMap等等节点,大家按需折腾吧~~我就不展开了

---------------------------------------------------------常规使用案例---------------------------------------------------------

这里做一个常规使用案例,基本足够各位正常序列化需求,方便储存信息

首先我们创建一个简单的结构体吧

ue4 unreal4 json序列化工具 数据转成字符串等

我们来序列化一个 Person的数组

先创建数组

ue4 unreal4 json序列化工具 数据转成字符串等

进行序列化循环

ue4 unreal4 json序列化工具 数据转成字符串等

整体思路就是用jsonMake进行转换,然后放入键值对

这里有个地方需要大家注意

需要创建一个json对象用来承载这四个数据类型

所以就需要使用到 jsonMake 创建一个对象

之后的JsonMakeField需要传入一个json对象 并且返回组装后的json对象

最后将这返回后的 json对象进行 JsonMakeObject 对象化

然后存放到一个Json对象数据组

ue4 unreal4 json序列化工具 数据转成字符串等

循环完成后将数组转化为对象并且序列化为字符串

ue4 unreal4 json序列化工具 数据转成字符串等

看一下输出结果

ue4 unreal4 json序列化工具 数据转成字符串等

{"personArray":[{"name":"翠花","age":18,"isMan":false,"position":[0,0,0]},{"name":"西施","age":20,"isMan":false,"position":[0,0,0]},{"name":"张三","age":35,"isMan":true,"position":[0,0,0]},{"name":"李四","age":25,"isMan":true,"position":[0,0,0]}]}

校验一下 木得问题

ue4 unreal4 json序列化工具 数据转成字符串等

为了方便查看,摆了摆截一张整图

ue4 unreal4 json序列化工具 数据转成字符串等

 

下面进行反向序列化为对象

核心思路就是讲数据按照名称拆分之后重新组装

将刚才输出的结果保存为变量 Result 方便操作

ue4 unreal4 json序列化工具 数据转成字符串等

首先将json字符串转换为json对象

ue4 unreal4 json序列化工具 数据转成字符串等

一定要注意节点名称是下面这个

ue4 unreal4 json序列化工具 数据转成字符串等

然后判断一下这个json对象内是否有该键,可以用JsonHasField来判断一下,防止报错

(当然你有把握也可以不写,这里我只写一次)

ue4 unreal4 json序列化工具 数据转成字符串等

我刚才封装的数组对象名为 personArray 可以在上面序列化蓝图里面看到

下一步需要将进行转换

将这个json对象通过 ToJsonValue 转换为json对象

ue4 unreal4 json序列化工具 数据转成字符串等

这个节点是需要键名的,而且因为第一层是person的数组,所以要转换为数组

ue4 unreal4 json序列化工具 数据转成字符串等

ue4 unreal4 json序列化工具 数据转成字符串等当然是用数组节点的

展开后循环获取每一层的对象

然后进行对象拆分,之后再是用ToJsonValue来分解数据,然后再通过对应的类型转换

ue4 unreal4 json序列化工具 数据转成字符串等

将json对象转换为对应类型就可以正常使用了

这里有一点一定要注意,从数组中拿到的obj也是要进行 ToJsonObject 操作之后才可以使用

ue4 unreal4 json序列化工具 数据转成字符串等

蓝图样子很普通

ue4 unreal4 json序列化工具 数据转成字符串等

废话有点多,下面直接上蓝图~~~(真的很容易忘,昨天用的,今天忘得一干二净。。。)

ue4 unreal4 json序列化工具 数据转成字符串等

看一下结果

ue4 unreal4 json序列化工具 数据转成字符串等

~~~搞定

最后说一下,这个插件还能使用的更复杂,层次更多,我这里就不演示了

支持字典就证明可以组装的更骚气,然而解析也很费力。。。谁让我不会c++