Я работаю с json на C++ и решил попробовать Jsoncpp. В моем json у меня есть некоторые значения, которые находятся в научной нотации и содержат отрицательные показатели, такие как 4.0e-06. Когда я иду разбирать эту строку json, я получаю странные результаты. Библиотека, похоже, работает нормально на позитивных экспонентах, но не работает, когда появляется отрицательный знак.Jsoncpp не читает показатели правильно
Ниже приведен пример кода, который я использовал для проверки этой строки json.
#include "json/json.h"
#include <iostream>
#include <string>
using namespace std;
int main(){
string json_example = "{\"test\":4.0e-06, \"test2\":0.000004\"}";
Json::Value json;
Json::Reader reader;
bool parsed = reader.parse(json_example, json, false);
cout << json.toStyledString() << endl;
}
И это результат, который я получаю.
{
"test" : 3.9999999999999998e-06,
"test2" : 3.9999999999999998e-06
}
Я не могу сказать, является ли это ошибкой в библиотеке или если я делаю что-то неправильно. Я попытался использовать более старые версии Jsoncpp и по-прежнему пришел к той же проблеме.
Благодаря
Я вижу, я буду стараться играть вокруг с этим немного и посмотрим, смогу ли я получить тот же результат, что и вы. Хорошо знать, что это не библиотека, виноватая. Спасибо за вашу помощь. – EMG
Вы можете рассмотреть [RapidJSON] (http://stackoverflow.com/a/29878756/833188), в котором рассматривается эта проблема – Sga