如何在用户输入的字符串上使用 GetString()?(RapidJson)

How can I use GetString() on a user inputted string?(RapidJson)

我只想让用户输入一个字符串,该字符串是特定对象的名称,然后让 GetString() return 它的字符串。这是我正在使用的 JSON 文件的一部分...

"Rogue Refiner": {
  "name": "Rogue Refiner",
  "power": "3",
  "toughness": "2"
},

这就是我return我想要的特定值...

Document d;
d.Parse(data.c_str());
d["Rogue Refiner"]["name"].GetString());

我希望能够让用户在命令提示符中输入一个字符串,因为 JSON 文件有成千上万个对象,例如 "Rogue Refiner"。我认为这会起作用...

Document d;
d.Parse(data.c_str());

std::string stringName;
std::cin >> stringName;
d[stringName]["name"].GetString());

但这行不通。错误说 "no operator "[]" 匹配这些操作数"。因此,如果有人知道我如何让用户输入他们想要查找的对象的名称,那就太好了。

operator[] 对应 Document 需要 const char *。请改用 d[stringName.c_str()]["name"].GetString());