声明:所有权利保留。

转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/43794409

Json的Writer博客地址:

http://blog.csdn.net/cartzhang/article/details/41009343  UE4的Json读写方式<一>

UE4 的json读写方式

一、UE4的Json解析代码

有网友说UE4的解析有问题,解析出错。个人觉得应该是Json格式有问题。或解析的对象不正确,对象或数组用来对应的解析方式来解析的。

解析方式有两种:类名为:FJsonSerializer,头文件名称为JsonSerializer.h

template <class CharType>
static bool Deserialize( const TSharedRef< TJsonReader<CharType> >& Reader, TArray< TSharedPtr<FJsonValue> >& OutArray )
{
StackState State;
if ( !Deserialize( Reader, /*OUT*/State ) )
{
return false;
} if ( State.Object.IsValid() )
{
return false;
} OutArray = State.Array;
return true;
} template <class CharType>
static bool Deserialize( const TSharedRef< TJsonReader<CharType> >& Reader, TSharedPtr<FJsonObject>& OutObject )
{
StackState State;
if ( !Deserialize( Reader, /*OUT*/State ) )
{
return false;
} if ( !State.Object.IsValid() )
{
return false;
} OutObject = State.Object;
return true;
}

可以看出,第一个是针对数组的,第二个是针对Json对象的。请注意分别。

二、样例代码

CPP中包含头文件#include "Json.h"。

void ATestPhysics1Character::JsonDeserialize()
{
FString JsonValue = "[{\"author\":\"4446545646544\"},{\"name\":\"jack\"}]"; FString JsonStr;
TArray<TSharedPtr<FJsonValue>> JsonParsed;
TSharedRef< TJsonReader<TCHAR> > JsonReader = TJsonReaderFactory<TCHAR>::Create(JsonValue); bool BFlag = FJsonSerializer::Deserialize(JsonReader, JsonParsed);
if (BFlag)
{
int ArrayNumber = JsonParsed.Num();
if (ArrayNumber == 2)
{
FString FStringAuthor = JsonParsed[0]->AsObject()->GetStringField("author");
if (GEngine)
{
FString TmpString = "author :" + FStringAuthor;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TmpString);
}
FString FStringName = JsonParsed[1]->AsObject()->GetStringField("name");
if (GEngine)
{
FString TmpString = "name :" + FStringName;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TmpString);
}
}
}
}

代码不严谨,但是是个样子。

三、结果截图


================

若有问题,请随时联系!

感谢浏览!

UE4的JSON读写方式<二>的更多相关文章

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

    声明:全部权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/41009343 UE4的Json的解析博客地址: http:// ...

  2. UE4的JSON读写方式<一>

    声明:所有权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/41009343 UE4的Json的解析博客地址: http:// ...

  3. UE4 的json读写方式

    转自:http://blog.csdn.net/cartzhang/article/details/41009343 JSON 的解析有很多开源库.UE4的JSON使用在代码的Public->S ...

  4. python 文件读写方式

    一.普通文件读写方式 1.读取文件信息: with open('/path/to/file', 'r') as f: content = f.read() 2.写入文件中: with open('/U ...

  5. Python中异常和JSON读写数据

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  6. python flask里 post请求,JSON数据获取方式总结

    #!flask/bin/python #encodig=utf-8 # _*_ coding:utf-8 _*_ # Writer : byz # dateTime : 2016-08-05 from ...

  7. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  8. SpringBoot-08:SpringBoot采用json的方式实现前后台通用的配置文件

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 一.需求: 本篇博客是最近笔者做的一个项目,已经上线但是还在不断开发,有些页面上的配置,测试服务器和正式服务器 ...

  9. python全栈开发_day8_文件的多种读写方式及游标

    一:文件的多种读写方式 主方式:w    r    a 从方式:t     b    + 了解方式:x    u 1)按t(按照字符进行操作): with open("data_1.txt& ...

随机推荐

  1. UVa 11015 - 05-2 Rendezvous

    題目:有一個班級的學生要一起寫作業,所以他們要到一個統一的地點.現在給你他們各自的位置, 問集合地點定在哪,能够讓全部人走的總路徑長度最小. 分析:圖論.最短路.直接利用Floyd計算最短路,找到和值 ...

  2. optionMenu-普通菜单使用

    首先结合如下的代码来看 package com.android.settings; import android.R.integer; import android.app.Fragment; imp ...

  3. h.264硬件解码

    // H264HWDecoder.m // H264EncoderDecoder // // Created by lujunjie on 2016/11/28. // Copyright © 201 ...

  4. kindle paperwhite 简单笔记按名称分类

    已更新python,见新博客  http://www.hrwhisper.me/archives/708 写作背景: 南京决赛比赛完那天晚上写的. 使用方法: 将My Clippings.txt 放在 ...

  5. scrapy-爬取斗图

    scrapy-爬取斗图代码   <一> 开局三连杀    1.创建run的文件  

  6. 学习easyui疑问(三)

    今天我学习easyui中碰到的还有一问题是:怎样创建一个表格? 首先,在easyui中文官网上提供的这样一种定义方式: <!--table--> <table id="tt ...

  7. 怎样判断一个P2P平台是否靠谱?

    判断一个网站,是否靠谱,是有规律可循的,P2P平台算是个新兴的电商类网站.   网上欺诈类的网站,不限于P2P,实在是太多了,真的有必要总结下最关键的几个靠谱指标.   最关键的2个   1.创始人和 ...

  8. (7)Launcher3客制化之,改动单屏幕后,Fix在Hotseat拖动应用删除报错

    改动单屏幕后,在workspace里面拖动图标.到删除button上松开的时候,报错问题. 而且无法再次显示拖动的图标. 拖动松开手时候触发 public void onDropCompleted(f ...

  9. [Angular] Two ways to create Angular Animation, using animation() or using state()

    We have two blocks to show to difference ways to do animation in Angular: <button (click)="t ...

  10. android 指定时间加一个小时算法

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class My ...