1

サーバーに対して認証する必要がある学校のタスクがあります。認証されたら、次を使用して、いくつかの JSON データを収集できます (正しい言葉かどうかはわかりません)。

List <NameValuePair> nvp = new ArrayList <NameValuePair>();

nvp.add(new BasicNameValuePair("username", "test")); //used to log in to the site
nvp.add(new BasicNameValuePair("password", "test")); 
nvp.add(new BasicNameValuePair("request", "login"));
nvp.add(new BasicNameValuePair("request", "mctrainer"));
post.setEntity(new UrlEncodedFormEntity(nvp));

そのコードを使用して収集するデータは次のとおりです。

[{"correctanswerPK":"155","challenge":"Hva er Areal","answer":"En klasse","choices":["Heltallstype","En klasse","Konstruktør"]},{"correctanswerPK":"149","challenge":"Hva brukes ordet private til","answer":"Innkapsling","choices":["Innkapsling","En klasse","Heltallstype"]},{"correctanswerPK":"161","challenge":"Hva er double","answer":"Flyttallstype","choices":["Exception","Flyttallstype","En metode"]}]

これはノルウェーのデータですが、それでも JSON です。

現在、を実行してこのデータを「表示」してSystem.out.println()います。つまり、コンソールに表示されます。ただし、タスクはそれを JFrame に表示させることです。私の理解では、これを行うには JSONArray と JSONObject を使用する必要があり、さらに JSONvalidator または同様のものを使用する必要があります。

問題は、それを行う方法がわからないことです。誰かが私を助けてくれる可能性はありますか?

先生は、 jtwitter.jar v2.6.9はこれを行うのに適したライブラリであると教えてくれましたが、その使用方法がわかりません。他のアイデアはありますか?

4

1 に答える 1

0

JSON テキストを個々のオブジェクトに分割して UI に表示したいと考えていると思います (テキストを表示するだけでもかまいません、それはあなたの課題のポイントではないと思いますか?)。

必要な中心的な目的で構築されていないライブラリを使用することはお勧めしません。あなたの教授に疑いを投げかけるつもりはありませんが、彼があなたに勧めたライブラリは、JSON を解析するためではなく、Twitter データを取得するように設計されています (主な目的の副次的効果として機能する可能性がありますが、それでも主な目的ではありません)。JSON 検証と POJO (プレーンな古い Java オブジェクト) への変換の両方が可能な他の優れた JSON ライブラリをお勧めします。ここにあなたが始めるためのまともなリストがあります

Java JSONは、プロジェクトに統合して使用するのが非常に簡単です。文字通り、ダウンロードしてコードに直接含めるクラスは 10 個未満です。Gson はおそらく 2 番目に使いやすく、3 つの中でヘビー級でありながら最も強力な Jackson がそれに続きます。以下に、リストにある最も簡単なライブラリを使用した処理の例を示します。次の形式の JSON を想定しています。

[
    {"firstName" : "Bob", "lastName" : "Jones"},
    {"firstName" : "Susan", "lastName" : "Smith"},
    {"firstName" : "Melody", "lastName" : "Dumond"}
]

これは、データに似た JSON 配列です。

final JSONArray jsonArr = new JSONArray(json);
final int numObjs = jsonArr.length();
for(int i = 0 ; i < numObjs; i++) {
    final JSONObject jsonObj = jsonArr.getJSONObject(i);
    System.out.printf("Person's name is %s, %s\n", jsonObj.get("lastName"),
        jsonObj.get("firstName");
}

この例を独自のプロジェクトに拡張するか、他の有用なライブラリの 1 つを調べて組み込むことができます。

于 2012-12-14T12:24:51.463 に答える