Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;读取JSON场景文件_C++_Regex_Json - Fatal编程技术网

C++ c++;读取JSON场景文件

C++ c++;读取JSON场景文件,c++,regex,json,C++,Regex,Json,我使用JSON作为引擎的“场景”文件;看起来是这样的: { "thorium": { "name" : "JustAnotherMap", "desc" : "A Map file", "actor": { "type" : "Volume", "name" : "m_pActor1", "rotation" : "0.0 0.0 0.0", "position" : "0.0 0.0 0.0" } } } 因此,我希望能够阅读这些内容,例如,创建名为m_pActor1等的对象Volu

我使用JSON作为引擎的“场景”文件;看起来是这样的:

{
"thorium": {
"name" : "JustAnotherMap",
"desc" : "A Map file",

"actor": {
"type" : "Volume",
"name" : "m_pActor1",
"rotation" : "0.0 0.0 0.0",
"position" : "0.0 0.0 0.0"
}   
}
}

因此,我希望能够阅读这些内容,例如,创建名为m_pActor1等的对象VolumeActor。这是一个正则表达式作业吗?我看到了很多相互矛盾的信息,所以我不太确定如何处理这个问题。

JSON语法包含平衡的大括号,这使它成为一个很好的例子。正则表达式是一种用于解析更简单语言的工具,称为。看

这就是说,目前使用的大多数正则表达式引擎都包含扩展,这些扩展使它们更强大,并允许它们解析严格来说不规则的语言。这包括分析平衡的花括号

然而,完成这项工作的正则表达式将是丑陋的,可能最终依赖于不可移植的特性,并且在JSON数据结构不断变化的情况下,维护正则表达式将是一场噩梦


您应该使用适当的JSON解析器,例如..

我建议使用库而不是正则表达式。它有一个很好的结构。所以我应该为每个参与者创建一个结构,然后使用迭代器遍历ptree,如果“actor”是节点名,那么创建这个结构吗?