問題タブ [qjson]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - コピーを使用せずに QJson 階層の QJsonObject 値を変更するには?
現在、開発中のプログラムの一部のデータを処理するために、コア QJson ライブラリで Qt5.0 を使用しています。
この質問の場面を設定するために、私の問題を説明する JSON データをいくつか提供します。
ここには、単一のキー「CLOCKS」を含む親 QJsonObject があります。このキーの値は、QJsonObjects の QJsonArray であり、データを含む多くのキーと値のペアが含まれています。
ID「clk」で QJsonObject を取得したい場合、現在次のようなコードを使用しています。
これはうまく機能し、ライブラリはこれまでのところ素晴らしいものです。ただし、最近、コピーではなく変更のために QJsonObject参照を取得したいときに問題が発生し始めました。
私の質問は、サンプル データが提供されていることを考えると、目的のクロック データ オブジェクトのキーと値のペアを変更するために QJsonObject 参照を取得する方法です。IMO は値エントリへの参照である QJsonValueRefs を取得できるという事実により、問題自体が明らかになりますが、実際にこの内部のデータにアクセスするには (値が別の配列/オブジェクトである場合)、toArray を使用して変換する必要があります。 ()、toObject() 関数など。この関数はコピーのみを返し、参照は返さず、参照を使用してオブジェクト階層を下に反復することへの障壁を作成します。
これを回避するためにこれまでに思いついた唯一の方法は、「CLOCKS」QJsonArray全体のコピーを作成し、必要なオブジェクトを見つけて削除し、変更されたデータで再挿入することです...そして最後に全体を割り当てます親オブジェクトの「CLOCKS」キーに配列を戻します。これは私にとっては面倒で、何か間違ったことをしているように感じ、もっと良い方法があるに違いありません。
これをサポートするために、これまでのコードは次のようになります...クロックQJsonObjectsの1つの「値」を変更するだけです:
これを少し短縮できることはわかっていますが、このような努力をせずに QJson オブジェクト階層の単一の値を変更するためのより良い方法があるはずです!!!
windows - MinGW を使用して Windows で QJson をコンパイルする
Qt プロジェクト用にQJsonライブラリをコンパイルし、Windows で実行しようとしています。GitHub から zip をダウンロードし、プロジェクトの Web サイトで次の手順に従います。
- 作成されたビルド フォルダー
- cmake -G "MinGW Makefiles" ..
- mingw32-make で次のエラーが発生しました:

#include にコメントすると、locale_t type is unknown と表示されます。では、それをコンパイルする方法は?
ありがとう!
c++ - Qjson 取得オブジェクト名
json オブジェクトがありますが、オブジェクト名を取得するにはどうすればよいですか? サーバーから送信されるオブジェクト名を取得できないため、オブジェクト名を取得する必要があります。
c++ - エラー: C1083: インクルード ファイルを開けません: 'QJson/Parser': そのようなファイルまたはディレクトリはありません
このリンクからダウンロードした Qt プロジェクトを実行しようとすると、このエラーが発生し ます https://code.google.com/p/qml-google-maps/downloads/list
でコンパイルしようとしていますQt 5.0.2。
c++ - Qt で QJson ライブラリを使用する方法
今、私は Qt v2.3 を使用しています。問題が 1 つあります。json を使用してデータをサーバーに送信する必要がありますが、Qjson クラスがありません。JSONをQtに含める方法は? またはそのための外部ヘッダーファイルはありますか?
c++ - QJson for Linux - QJSON の正しい使い方がわからない
いくつかの背景
元々は Mac でプロジェクトを作成していましたが、今は Linux マシンを同じプロジェクトに使用したいと考えています。設定フォルダーは以下に依存していました。
これらは、SL5 の qt-devel インストールには含まれていませんでした。QT v4 を使用しています。そこで、Sourceforge から QJsonをダウンロードし、cmake を使用してインストールしました。出力例:
それはいいです。だから私は私の.proに追加しました:
実際の問題
ここで、古いsettings.cppファイルを変換して、このわずかに新しい方法でデータを解析するタスクがあります。
したがって、以前の作業方法で行ったのと同じように、上記の json を QString に入れ、指示に従って解析を試みます。私は使用しました:#include <qjson/parser.h>ここで前方宣言は必要ないと思います。
私が得るエラー:
エラー: 'Qjson::Parser:parse(QString&, bool) を呼び出す一致する関数がありません
インクルードを削除すると、エラーは次のように表示されます。
QJson が宣言されていません
したがって、少なくともライブラリを見つける必要があります。何がうまくいかないかについてのアイデアはありますか?