использование json spirit для чтения имени и значения объектов Value в Stack Overflow

У меня есть текстовый файл, в котором есть данные, записанные в формате JSON.
Данные выглядят примерно так:

[
...
{
"volume": 93,
"id": "part-30",
"value": 19
},
{
"volume": 83,
"id": "part-31",
"value": 19
}
...
]

После обращения к этот а также этот

Я дошел до того, что могу прочитать поле «имя» следующей структуры данных.
Итак, в остальном, мой код для чтения этого объекта выглядит так:

// read from parts list file to JSON object.
const char* file_name2( "parts_list.txt" );
ifstream is2( file_name2 );
json_spirit::Value value2;
read( is2, value2 );
// const Object& addr_array = value.get_obj();
vector<Value> jsonObj2 = value2.get_array();
vector<Value>::iterator it;
vector<RobotParts> final;

for(it = jsonObj2.begin(); it!=jsonObj2.end(); it++)
{
auto valObj = it->get_obj();
RobotParts rpObj = RobotParts();
for(auto vo : valObj)
{
if(vo.name_=="volume"){
string s = vo.value_;
}
}
final.push_back(rpObj);
}

cout << final.size() << endl;
return 0;

Но эта строка здесь -> vo.value_; кажется, создает много проблем.
Я не могу понять, что тип данных этого объекта.
Пока что я пробовал:

  1. Чтение в целое число. Я думал, так как объем имеет целочисленное значение

int i = vo.get_value< int> ();

Должно сработать. Но вместо этого он говорит

error: no member named 'get_value' in
'json_spirit::Pair_impl<json_spirit::Config_vector<std::__1::basic_string<char> > >'
  1. Чтение в строку, чтобы я мог распечатать ее.

строка s = vo.value_;

Это выдает следующую ошибку:

error: no viable conversion from 'Value_type' (aka
'Value_impl<json_spirit::Config_vector<std::__1::basic_string<char> > >') to 'string' (aka 'basic_string<char, char_traits<char>,
allocator<char> >')

Я могу, однако, распечатать vo.name_ с помощью cout << vo.name_ << endl в цикле.
Это выводит:

...
volume
id
value
volume
id
value
...

скоро.

Я знаю, что это связано с несовместимостью типов данных, но я потратил два-три часа, чтобы выяснить, как получить доступ к этому значению.

Как мне получить доступ к этим значениям, соответствующим громкости, идентификатору и значению?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]