用蓝图C++解析json的代码
时间: 2023-04-01 21:01:13 浏览: 225
以下是使用蓝图C解析JSON的示例代码:
```
// 定义JSON字符串
FString JsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
// 解析JSON字符串
TSharedPtr<FJsonObject> JsonObject;
TSharedRef<TJsonReader<>> JsonReader = TJsonReaderFactory<>::Create(JsonString);
if (FJsonSerializer::Deserialize(JsonReader, JsonObject))
{
// 获取JSON对象中的值
FString Name = JsonObject->GetStringField("name");
int32 Age = JsonObject->GetIntegerField("age");
FString City = JsonObject->GetStringField("city");
// 打印获取到的值
UE_LOG(LogTemp, Warning, TEXT("Name: %s"), *Name);
UE_LOG(LogTemp, Warning, TEXT("Age: %d"), Age);
UE_LOG(LogTemp, Warning, TEXT("City: %s"), *City);
}
```
希望对你有所帮助!
相关问题
用蓝图c++写一个解析json数据的例子
可以使用以下代码解析 JSON 数据:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cJSON.h>
int main() {
char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *city = cJSON_GetObjectItem(root, "city");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("City: %s\n", city->valuestring);
cJSON_Delete(root);
return ;
}
```
这个例子使用了 cJSON 库来解析 JSON 数据。首先定义一个 JSON 字符串,然后使用 cJSON_Parse 函数将其解析成 cJSON 对象。接着使用 cJSON_GetObjectItem 函数获取对象中的属性值,最后打印出来即可。注意要在最后使用 cJSON_Delete 函数释放内存。
蓝图 string转json
将字符串转换为JSON对象可以使用JSON库来实现。在C++中,可以使用第三方库如`nlohmann/json`来处理JSON数据。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
std::string jsonString = R"({"name":"John", "age":30, "city":"New York"})";
try {
json jsonData = json::parse(jsonString);
std::cout << "Name: " << jsonData["name"] << std::endl;
std::cout << "Age: " << jsonData["age"] << std::endl;
std::cout << "City: " << jsonData["city"] << std::endl;
} catch (const json::parse_error& e) {
std::cerr << "Failed to parse JSON: " << e.what() << std::endl;
}
return 0;
}
```
在上面的示例代码中,我们首先定义了一个JSON字符串`jsonString`。然后使用`json::parse`函数将其解析为JSON对象`jsonData`。然后,我们可以通过键访问JSON对象的值。
请注意,此示例中使用的是`nlohmann/json`库。
阅读全文