如何为nlohmann::basic_json编写自定义调试助手?

2024-09-29 23:32:08 发布

您现在位置:Python中文网/ 问答频道 /正文

<>我面临的任务是编写一个简单的调试助手,用于qtCalv4.4.1/1/QT5.12.5/MSVC 2017编译器,用于C++ JSON实现^ {< CD1>}(https://github.com/nlohmann/json)。p>

{}的对象一次可以包含单个JSON数据类型的内容(null布尔数字字符串数组对象)。 有一个dump()成员函数,可用于输出格式化为std::string的当前内容,而不考虑当前的数据类型。我一直想用这个函数

到目前为止我所做的:

  • 我已经查看了https://doc.qt.io/qtcreator/creator-debugging-helpers.html,以及给定的示例文件(qttypes.pystdtypes.py…)
  • 我复制了一份文件personaltypes.py,并在
    告诉Qt Creator它的存在 工具/选项/调试器/局部变量&;表达式/额外调试帮助程序

下面的代码工作并在调试器窗口中为nlohmann::basic_json对象显示“Hello World”

import dumper

def qdump__nlohmann__basic_json(d, value): 
    d.putNumChild(0)
    d.putValue("Hello World")      

不幸的是,尽管有文档,我不知道如何从这里开始。 我仍然完全不知道如何使用Python中的转储程序正确调用basic_jsondump()函数(例如使用d.putCallItem?)

我也不知道如何格式化返回的std::string,以便它最终显示在调试器窗口中

我想象过这样的事情,但它不起作用

d.putValue("data")
d.putNumChild(1)
d.putCallItem('dump', '@std::string', value, 'dump')

我希望有人能给我一点线索,这样我就能继续朝着正确的方向思考。 例如,我可以自己从stdtypes.py调用qdump__std__string来解释std::string


Tags: 文件对象函数pyhttpsjson内容string

热门问题