2014-11-14 3 views
1

rapidjson을 사용하여 json을 구문 분석하는 동안 double 값의 기본 바이트를 가져 오는 방법이 있습니까? 아래 코드에서rapidjson 구문 분석에서 이중 값에 대한 원시 문자열 (또는 바이트)을 가져 오는 중입니까?

봐 :

string temp_json2 = "{\"byte_size\":1000.3}"; 
rapidjson::Document doc; 
doc.Parse<0>(temp_json2.c_str()); 

rapidjson::Value::ConstMemberIterator iter = doc.MemberBegin(); 

const rapidjson::Value& key = iter->name; 
std::cout << key.GetString() << " = "; 

const rapidjson::Value& val = iter->value; 
std::cout << val.GetDouble(); 

내가

val.GetRawString 같은 것을() 싶어; 대신 val.GetDouble();

이유 변환 할 때 정밀도가 손실되는 것을 원하지 않는다는 이유가 필요합니다. json을 수정하여 이중 값을 따옴표로 묶을 수는 없습니다.

+0

해결 방법을 찾으셨습니까? 우리도 똑같은 문제를 겪고 있습니다. – bpeikes

답변

1

현재 없습니다.

저는 정확히 전체 문자열을 구문 분석하여 double으로 해석 할 수있는 "전체 정밀도"구문 분석 옵션 (아주 오랜 시간 동안) 작업을하고 있습니다. double 문자열 변환은 이미 grisu2 알고리즘을 사용하여 정확하게 수행되었습니다. 그러나 문자열을 double으로 정확하게 표현할 수 없으면 여전히 정밀도가 떨어집니다.

요구 사항을 지원하려면 구문 분석 옵션을 추가하고 SAX 및 DOM 인터페이스를 변경해야 할 수 있습니다. 이 기능을 구현하려면 추가 논의를 위해 here을 알려주십시오.