2011-06-30 13 views
3

ブーストのJSONパーサーに私のtwitterフィードをパイプすることができるかどうかを確認するためのテストとして、本当に素早く試しました。サイコロはありません。私のJSONパーサーは、次の行を処理することはできません。boost :: property_tree :: json_parser :: read_json&Twitter?

"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/4531792\/wallpaper_stock.jpg", 
"url":"http:\/\/on.fb.me\/bShBVQ", 
exception error: "invalid escape sequence" 

"id":86162751646482432, 
exception error: "expected value" 

問題のある行を削除するには、人口のプロパティツリーを取得します。 Twitterでは十分ではありません。プロパティツリーを間違って宣言した場合のコードは次のとおりです。助けて?

int main (int argc, char * const argv[]) 
{ 
    boost::property_tree::basic_ptree<std::string,std::string> pt; 
    std::ifstream f; 
    f.open("testJSON2a.txt"); 
    if(!f.is_open()) 
    { 
     std::cout << "Error"; 
     return 0; 
    } 

    try 
    { 
     boost::property_tree::json_parser::read_json(f,pt); 
     boost::property_tree::basic_ptree<std::string,std::string>::const_iterator iter = pt.begin(),iterEnd = pt.end(); 
     for(;iter != iterEnd;++iter) 
     { 
      std::cout << iter->first << " " << iter->second.get_value<std::string>() << std::endl; 
     } 
    } 
    catch(boost::property_tree::json_parser::json_parser_error &je) 
    { 
     std::cout << "Error parsing: " << je.filename() << " on line: " << je.line() << std::endl; 
     std::cout << je.message() << std::endl; 
    } 
    return 0; 
} 
+0

ウェブは、実際にURIがあるべき再フォーマット: "URL": "のhttp:\/\/on.fb.me \/bShBVQ"、 – user805547

答えて

2

答えは:-)ブーストの最新バージョンに更新することです。明らかに、このライブラリは安定していません。すべてのバージョンにおける主要な変更/リファクタリング

関連する問題