4

std::string から rapidjson で解析する方法は? 私は次のようにしようとしています(json文字列は有効です、jsonlint.comで確認しました)

Document document;
char * writable = new char[contentString.size() + 1];
std::copy(contentString.begin(), contentString.end(), writable);
writable[contentString.size()] = '\0'; // don't forget the terminating 0
std::cout<<writable<<"\n";
if (document.Parse<0>(writable).HasParseError())
    return 1;

contentStringは私のjson std::stringですが、開始すると常にエラーが発生します( return 1 )。size()+1 と '\0' なしでも試しましたが、何もしませんでした (絶望的な測定プログラミング)。誰でも私を助けることができますか?

4

4 に答える 4

4

やってみました

if (document.Parse<0>(contentString.c_str()).HasParseError())
    return 1;

?

ドキュメントから、「書き込み可能」なものが必要な理由がわかりません...

于 2013-03-25T16:10:49.880 に答える
2

json に送信する文字列にエラーがあるようです。正しく使用しています。送信してみることをお勧めします。

const char json[] = "{ \"hello\" : \"world\" }";

そして、それが機能するかどうかを確認してください。そうであれば、明らかにバッファの問題です..そこから続行できます

于 2013-03-25T16:16:34.893 に答える