想格式化输出json带自动换行,网上说有个Nlohamann::json::to_cbor函数,但是好想要传入vector,有没有办法传入json,然后输出也是json
2条回答 默认 最新
- GISer Liu 2024-02-25 11:21关注
该回答引用自GPT-3.5,由博主GISer Liu编写:
根据您的描述,您想要使用 Nlohmann JSON 库将 JSON 格式化输出为 CBOR 格式,并希望能够在输出时自动换行。您提到网上说有一个
Nlohmann::json::to_cbor
函数,但是好像需要传入 vector。您想知道是否有办法传入 JSON,然后输出也是
JSON。针对这个问题,我给出以下解决思路和解决方案:解决思路
- 将 JSON 转换为 CBOR 格式,然后再将 CBOR 格式转换回 JSON 格式。
- 自定义一个函数,将 JSON 格式化输出为 CBOR 格式,并在输出时添加换行符。
解决方案
方法一:将 JSON 转换为 CBOR,然后再转换回 JSON
cppCopy code#include <iostream> #include <nlohmann/json.hpp> using json = nlohmann::json; int main() { // 原始 JSON 数据 json j = R"({"name":"John","age":30,"city":"New York"})"_json; // 转换为 CBOR std::vector<uint8_t> cbor_data = json::to_cbor(j); // 将 CBOR 转换回 JSON json j_new = json::from_cbor(cbor_data); // 打印 JSON std::cout << std::setw(4) << j_new << std::endl; return 0; }
方法二:自定义函数格式化输出 JSON 到 CBOR,并添加换行符
cppCopy code
以上代码演示了两种方法,您可以根据实际需求选择其中之一。如果您有其他问题或需要进一步帮助,请随时告诉我!#include <iostream> #include <iomanip> #include <nlohmann/json.hpp> using json = nlohmann::json; std::vector<uint8_t> json_to_cbor_with_newlines(const json& j) { std::stringstream ss; ss << std::setw(4) << j << std::endl; std::string json_str = ss.str(); return std::vector<uint8_t>(json_str.begin(), json_str.end()); } int main() { // 原始 JSON 数据 json j = R"({"name":"John","age":30,"city":"New York"})"_json; // 格式化输出 JSON 到 CBOR,并添加换行符 std::vector<uint8_t> cbor_data = json_to_cbor_with_newlines(j); // 输出 CBOR 数据 for (const auto& byte : cbor_data) { std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)byte << " "; } std::cout << std::endl; return 0; }
如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥15 树莓派5怎么用camera module 3啊
- ¥20 java在应用程序里获取不到扬声器设备
- ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: