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

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

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

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

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

虚幻商城 搜索 json

 

就是这个插件啦~~~

 

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

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

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

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

好了安装成功

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

先介绍常用节点吧

 

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

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

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

json Object就是2里面的json对象

field Name 是键的名称

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

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

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

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

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

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

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

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

先创建数组

进行序列化循环

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

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

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

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

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

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

然后存放到一个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]}]}

校验一下 木得问题

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

 

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

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

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

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

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

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

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

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

下一步需要将进行转换

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

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

当然是用数组节点的

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

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

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

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

蓝图样子很普通

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

看一下结果

~~~搞定

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

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

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

追加更新:

上面的字符串如果只是纯数组

例如:

[{"name":"河北","value":"123123"},{"name":"河南","value":"7777"}]

这个插件就解析不了,因为无法提取没有名称的东西,必须有个名字

虽然没找到原生的解决方案,但是咱们可以曲线救国

给字符串套个对象0.0

示例粗糙,结合之前的结论一起看就明白了~~~希望大家顺利顺利

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懵懵爸爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值