由于字符串到JSON转换而产生的异常如何解决
How do I solve exception generated due to string to json conversion?
我试图使用nlohmann框架在C 中使用NLOHMANN框架来理解JSON和将JSON转换字符串到JSON转换。但是,我会因产生异常而遇到问题,但我不了解其生成的原因。
以下是我从Nlohmann Framework使用的代码。我尝试创建一个JSON对象" J_STRING",添加属性" Transformation_matrix",然后从预定义的变量"问候"中向其添加相应的值。现在,我正在尝试将字符串转换为JSON,然后将其解析,然后再次转换为字符串。基本上,我试图通过UDP发送这些数据,这是我项目背后的整体想法。为此,我需要从字符串转换为JSON,进行一些计算以提取属性的一定值,然后将其转换回字符串并通过UDP发送。当我尝试从字符串转换为JSON时,我会从编译器中获得异常。我正在使用Visual Studio2019。以下是生成的例外:
" JSONCPP2.EXE中的0x772718a2 in nothanded Exception:Microsoft C 例外:nlohmann :: detail :: type_error在存储器位置0x00ee9f504。"
。让我知道为什么要生成这样的例外。当我编译代码时,它没有说明错误。但是,当我执行它时,我会得到一个例外。我添加了必要的文件和标题。
#include<iostream>
#include<sstream>
#include<nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
std::string greetings = "greetings from string";
json j_string;
j_string["transformation matrix"] = greetings;
auto cpp_string = j_string.get<std::string>();
std::string serialized_string = j_string.dump();
std::cout << serialized_string << 'n';
}
我的预期结果是:
[
"transfornation matrix" : "greetings from string"
]
对于一般安全,您应该确保在致电j_string.get<std::string>()
之前确保j_string.is_string()
避免此类例外。
另外,请注意,由于您仅使用j_string["transformation matrix"] = greetings;
使用对象式分配,因此j_string
成为 object 类型。如果您将字符串直接分配给j_string
,则可以在 string type上进行。
这在Nlohmann/JSON示例的前两行中涵盖。
// create an empty structure (null)
json j;
// add a number that is stored as double (note the implicit conversion of j to an object)
j["pi"] = 3.141;
- 运行同一解决方案的另一个项目的项目
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 使用 LoadToolbarEx 解决异常以及正常图像与大图像计数之间的差异
- HTTP异常::无法连接到任何解决的端点-CPPRESTSDK
- 当主站请求保存Arduino从站的注册表值时,如何解决Pymodbus异常
- 由于字符串到JSON转换而产生的异常如何解决
- 尝试解决HackerBank上的BFS挑战时出现错误的alloc异常
- 为什么我们需要 RAII 来解决异常安全问题
- 如何通过引用捕获异常来解决局部变量问题
- 将异常转换为可选:无法解决重载函数类型
- 我该如何解决它?libc++abi.dylib:以 std::invalid_argument 类型的未捕获异常终止:s
- 无法解决 c++ 中的浮点异常
- 使用零长度元组的boost异常,如何解决
- 派生自库中的std::exception:仅头文件解决方案是否适用于捕获异常
- 用c++递归解决迷宫,不能处理异常情况
- 当将卡萨布兰卡代码集成到现有的c++解决方案中时,Memcpy异常
- 如何解决未处理的异常?(GLFW3 OpenGL)
- 未处理的异常-如何解决它,c++
- 异常未解决的外部符号错误