使用 python 将 C++ 结构更改为 JSON 字符串

Posted

技术标签:

【中文标题】使用 python 将 C++ 结构更改为 JSON 字符串【英文标题】:Change C++ structure to JSON string using python 【发布时间】:2018-03-28 06:37:04 【问题描述】:

有没有办法使用 Python 将 c++ 结构转换为 JSON 字符串?

我有多个包含以下结构的 c++ 文件

#include <iostream>
using namespace std;

struct Person

    char name[50];
    int age;
    float salary;
;

我想把它转换成 JSON 字符串。所以我可以在我的 python 项目中使用 JSON 字符串。

提前致谢。

【问题讨论】:

您需要此值才能成为有效的 JSON 对象。无论如何,只需删除struct Person 行并将; 替换为,,您就差不多完成了 【参考方案1】:

JSON 是一种标准化格式,几乎所有常见的编程语言都有一些库可以帮助您。

我不确定你到底在问什么;你真的想用 Python 转换一个 c++ 文件(包含一个 c/c++ 结构)吗?也有 c++ 库可以为您做到这一点

阅读article 了解 C++ 和 JSON。

【讨论】:

【参考方案2】:

如果您想将 C++ 结构转换为 JSON 字符串,有很多库可以做到这一点。在我的示例中,我使用的是https://github.com/nlohmann/json

#include <iostream>
#include "json.hpp"
using namespace std;
using json = nlohmann::json;

struct Person

    string name;
    int age;
    float salary;
; 

int main()

    Person p;
    p.name = "Shivam";
    p.age = 7;
    p.salary = 45.0;
    // creating json
    json j;
    j["name"] = p.name;
    j["age"] = p.age;
    j["salary"] = p.salary;
    string s = j.dump();
    cout<<s<<endl;
    // pretty print
    cout<<j.dump(4)<<endl;
    return 1;

【讨论】:

我无法在 c++ 项目中初始化字段。我有 90 个结构。以及如何在我的 python 项目中获取这个 json 字符串? 您能在问题中添加详细信息吗?就像预期的输入和期望的输出一样。

以上是关于使用 python 将 C++ 结构更改为 JSON 字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中遍历 C++ 集?

将 C++ 类更改为模板

C++ 将派生类的成员更改为其专用版本

在 C++ 中,主函数是编程的入口点,我如何将其更改为其他函数?

如何将 Eclipse 项目文件夹结构更改为 Maven/Gradle 结构

如何使用带有c ++的opencv库将下图中的黑色像素更改为红色像素