gpt4 book ai didi

c++ - 如何使用 rapidjson 查看 .json 中的数组? (cocos2d-x)

转载 作者:太空狗 更新时间:2023-10-29 21:39:02 28 4
gpt4 key购买 nike

好吧,我认为这个问题很具体,我想遍历一个 .json 格式的数组:

{ "N" : 5, "Rotacion" : 42, "Igual" : 20, "Inverso" : 0, "RotacionE" : 47, "Espejo" : 22, "Puntuacion" : 0, "_id" :  "563b7b4756ab632f47fe6d7f" , "Lados" : [], "Camino" : [ 6, 5, 4, 21, 22, 7, 2, 3, 20, 23, 8, 1, 18, 19, 24, 9, 0, 17, 16, 15, 10, 11, 12, 13, 14 ], "__v" : 0 }

我搜索了一些教程,他们告诉我执行以下操作:

const Value& a = document["a"];
assert(a.IsArray());
for (SizeType i = 0; i < a.Size(); i++) // Uses SizeType instead of size_t
printf("a[%d] = %d\n", i, a[i].GetInt());

这个例子的问题是在编译时出现以下错误:

 /home/jmuniz/code/Cocos2d-x/interface/Classes/HelloWorldScene.cpp:84:7: error: reference to ‘Value’ is ambiguous
const Value& a = d["Camino"];

 /home/jmuniz/code/Cocos2d-x/interface/cocos2d/cocos/base/CCValue.h:54:14: note: candidates are: class cocos2d::Value
class CC_DLL Value
^
In file included from /home/jmuniz/code/Cocos2d-x/interface/Classes/HelloWorldScene.cpp:4:0:
/home/jmuniz/Dev/rapidjson-master/include/rapidjson/document.h:1758:31: note: typedef class rapidjson::GenericValue<rapidjson::UTF8<> > rapidjson::Value
typedef GenericValue<UTF8<> > Value;
^
/home/jmuniz/code/Cocos2d-x/interface/Classes/HelloWorldScene.cpp:84:7: error: ‘Value’ does not name a type
const Value& a = d["Camino"];

我在这里放了一段打开 .json 的代码,所以你可以了解我在做什么

FILE* fp = fopen("/home/jmuniz/code/Cocos2d-x/interface/Resources/res/puzzles(copia).json", "r"); // non-Windows use "r"
char readBuffer[65536];
FileReadStream is(fp, readBuffer, sizeof(readBuffer));
Document d;
d.ParseStream(is);
fclose(fp);

我需要知道为什么会发生错误?或者至少告诉我如何访问数组以打印然后操作

最佳答案

这是因为有两个同名Value的类型。

要解决歧义,只需使用 rapidjson::Value 代替,或者键入一个新名称。

关于c++ - 如何使用 rapidjson 查看 .json 中的数组? (cocos2d-x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33919963/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com