Unreal Engine中将字节数组转化为json
时间: 2024-01-23 09:03:44 浏览: 248
js实现数组转换成json
在 Unreal Engine 中将字节数组转化为 JSON,可以使用 UE 提供的 FJson 模块。以下是一个简单的示例代码:
```c++
#include "JsonWriter.h"
// 假设有一个 byte 数组叫做 jsonData,长度为 dataLen
TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);
JsonObject->SetStringField("name", "Alice");
JsonObject->SetNumberField("age", 25);
JsonObject->SetBoolField("isStudent", true);
TArray<int32> Grades = {85, 92, 78};
TArray<TSharedPtr<FJsonValue>> JsonGrades;
for (int32 i = 0; i < Grades.Num(); i++)
{
JsonGrades.Add(MakeShareable(new FJsonValueNumber(Grades[i])));
}
JsonObject->SetArrayField("grades", JsonGrades);
FString JsonString;
TSharedRef<TJsonWriter<>> JsonWriter = TJsonWriterFactory<>::Create(&JsonString);
FJsonSerializer::Serialize(JsonObject.ToSharedRef(), JsonWriter);
// 现在 JsonString 中就是转化后的 JSON 字符串
```
上述代码中,首先创建一个 FJsonObject 对象,然后通过 FJsonObject 的各种 Set*Field 方法设置字段的值。其中 grades 字段是一个数组,需要先创建一个 TArray<TSharedPtr<FJsonValue>> 对象,然后将每个元素转换为 TSharedPtr<FJsonValueNumber> 类型并添加到数组中,最后通过 FJsonObject 的 SetArrayField 方法设置 grades 字段的值。
然后创建一个 TJsonWriter 对象,用于将 FJsonObject 对象转换为 JSON 字符串。最后调用 FJsonSerializer::Serialize 方法将 FJsonObject 对象序列化为 JSON 字符串,并存储在 FString 变量 JsonString 中。
需要注意的是,在使用 FJson 模块生成 JSON 数据时,需要确保数据的格式正确,否则会导致生成的 JSON 数据不符合规范。
阅读全文