5

以前は、Visual Studio 開発環境で C++ を使用しただけでした。これで、JSON を使用してデータを送受信するよう求められました。

インターネットを検索しましたが、Visual Studio の C++ で使用されている JSON の例が見つかりません。Visual Studio 2010 の C++ で JSON を扱ったことがある人は、リンクを教えてください。

4

5 に答える 5

3

boost :: spiritをインストールする場合は、このlibJSONSpiritを使用できます。チャームのようにVSで動作します。

更新json精神ディレクトリを含めて使用する

#include <json_spirit/json_spirit.h>
#include <json_spirit/json_spirit_reader_template.h>
#include <json_spirit/json_spirit_writer_template.h>
于 2012-10-10T13:34:22.630 に答える
1

JsonCppは、READMEに従って VS に組み込まれている C++ JSON パーサーです。

于 2012-10-10T13:08:47.327 に答える
0

Rapidjsonを試すことができます。

小さく、高速で、ネイティブに VC2008/2010 をサポートし、依存関係は最小限です (たとえば、BOOST も STL もありません)。

SAX または DOM スタイルの API を使用して JSON を解析および生成できます。

于 2012-11-14T08:39:49.387 に答える
0

Json11 - C++11 用の小さな JSON ライブラリで、JSON の解析とシリアル化を提供します。

ライブラリが提供するコア オブジェクトは json11::Json です。Json オブジェクトは、任意の JSON 値を表します: null、bool、数値 (int または double)、文字列 (std::string)、配列 (std::vector)、またはオブジェクト (std::map)。

Json オブジェクトは値のように機能します。割り当て、コピー、移動、同等性や順序の比較などを行うことができます。Json を文字列にシリアル化するためのヘルパー メソッド Json::dump と、std::string を Json オブジェクトとして解析するための Json::parse (静的) もあります。

例:

        const string simple_test =
            R"({"k1":"v1", "k2":42, "k3":["a",123,true,false,null]})";
        string err;
        auto json = Json::parse(simple_test, err);
        std::cout << "k1: " << json["k1"].string_value() << "\n";

PicoJSON - 次のプロパティを持つ C++ 用の小さな JSON パーサー/シリアライザーです。

  • ヘッダファイルのみ
  • 外部依存関係なし (標準の C++ ライブラリのみを使用)
  • STL 対応 (配列は std::vector を使用して表現され、オブジェクトは std::map で表されます)
  • プル インターフェイスとストリーミング (イベント ベース) インターフェイスの両方を提供

例:

        std::string json1 = R"({ "k1":"v1", "k2" : 42, "k3" : ["a",123,true,false,null] })";
        picojson::value v;
        std::string err1 = picojson::parse(v, json1);
        const picojson::object& o = v.get<picojson::object>();
        for (picojson::object::const_iterator i = o.begin(); i != o.end(); ++i) {
            std::cout << i->first << "  " << i->second << std::endl;
        }

どちらも標準ライブラリを使用して Visual Studio で簡単に使用できます (追加の依存関係はありません)。

于 2017-01-18T12:37:26.087 に答える