卡萨布兰卡 C++ REST SDK 中的 web::json::value::p arse 和 web::json::
Difference between web::json::value::parse and web::json::value::string in Casablanca C++ REST SDK
我有一段看起来像这样的代码(obj
是一个web::json::value
(:
try {
obj[key_str] = web::json::value::parse(value_str);
}
catch (...) {
obj[key_str] = web::json::value::string(value_str);
}
我无法找到两者之间的区别,因为对于我给出的任何输入value_str
,例如字符串"value1"
,只有catch
中的语句运行。
所以我的问题是 - ::string()
和::parse()
之间的确切区别是什么?
你能给我看一个最小的例子来证明这种差异吗?我无法仅从文档中区分这两个函数。
parse 获取一个字符串并从中形成一个 JSON 对象:
{"id": 1,"title": "test" }
将为您提供大小为 2 的对象,包含 id = 1,标题 = "test"。
字符串并从中形成一个 JSON 字符串。
后面的示例将返回包含 "id": 1,"title": "test"
的 à json 字符串。
这基本上意味着您正在尝试解析未被识别为 json 对象的 json 字符串。您给出的示例就是这种情况。
parse(const std::string& s) {
std::cout << json.parse(s) << std::endl;
std::cout << json.parse(s).size() << std::endl;
std::cout << json.parse(s).type() << std::endl;
std::cout << json.string(s) << std::endl;
std::cout << json.string(s).size() << std::endl;
std::cout << json.string(s).type() << std::endl;
}
对于{"id": 1,"title": "test" }
返回:
{"body":"body test","id":1,"title":"test","userId":1}
4
3
"{"userId":1, "id": 1,"title": "test","body": "body test"}"
0
2
请注意 json 对象的大小以及 json 字符串介于引号和大小 0 而不是 4 之间的事实。查看类型 3(对象(和 2 字符串。
对于不是 json 的"值 1",它是一个字符串,您将拥有:
"value 1"
0
""value 1""
0
请注意,此处 2 个对象的大小为 0,类型为 2(字符串(。
这是类型的值:
enum value_type
{
/// Number value
Number,
/// Boolean value
Boolean,
/// String value
String,
/// Object value
Object,
/// Array value
Array,
/// Null value
Null
};
相关文章:
- 在c++中使用nlohmann从类到json的转换
- C++json插入数组
- nlohmann-json将一个数组插入到另一个数组中
- 如何使用curlpp通过POST方法上传文件和json数据
- JSON转换为nlohmann JSON-lib中的结构数组
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 如何在 nlohmann 的 json 库中获取数组长度?
- 在C/C 接受JSON中创建REST Web服务
- 从QT的Web服务中解析未命名的JSON数组
- 使用CPPRESTSDK将字符串转换为Web :: JSON
- 将`web :: json :: object“转换为`web :: json :: value`
- 卡萨布兰卡 C++ REST SDK 中的 web::json::value::p arse 和 web::json::
- 如何使用卡萨布兰卡在现有的web::json::value对象中附加新的键值对?
- 对web::json::value::object的未定义引用,即使包含json.h
- C++ 将请求发送到 Web 服务器上的 API,然后接收 JSON 数组响应
- 如何使用c++语言和JSON解析器创建Restful Web服务
- 如何将JSON发布到web服务器
- JWT(JSON Web Token)在C++中使用boost和openssl bug
- web服务- json-rpc服务器通过HTTPS使用c++