2011-07-13 11 views
0

私はプログラミングが新しく、私はインターンシップでBlackberry Appを開発しています。だから間違った用語を使用すると、事前にお詫びします。JSON配列の解析とJava型への変換

特定のユーザーのすべての友人に対してHTTPリクエストを作成し、このJSON配列形式でJSON応答を取得します。

{ "ユーザ":[{ "ユーザ名": "jonbob"、 "FIRST_NAME": "ジョン"、 "姓": "ボブ"、 "電話": "5555555555"、 "FULL_NAME": " Joe Bob、 "id":1}、{"username": "joesmith"、 "first_name": "Joe"、 "last_name": "Smith"、 "phone": "5555555555"、 "full_name": "Joeスミス」、 "ID":2}]}

私はorg.jsonの解析ライブラリを使用しています。私はすべてのユーザーの友人(アドレス帳のような)を含むブラックベリーのリストを作成しようとしています。しかし、私はこのorg.jsonライブラリを使用してJSON配列にアクセスする方法が不明です。私はすべての友人のfull_namesだけでJava Arrayを作成したい。これを達成するためにこの応答を解析する方法はどうですか?

おかげ

+0

あなたが試したものを表示します。あなたが問題を抱えているコードの特定の部分を説明してください。あなたはそれがすると思ったことを説明してください。その代わりに何が起きたかを説明してください。 –

答えて

-1

あなたはこのライブラリは、JSONとJavaの操作のための強力ですGSonを見て持つことができます。

List<Users> users= gson.fromJson(json, new TypeToken<List<Users>>(){}.getType()); 

ここにAPIドキュメントがあります。 http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

+0

入力JSONデータ構造が提案されたターゲットJava構造と一致しないため、これは示唆したように機能しません。 JSONオブジェクト!= Javaリスト。 –

1
import java.util.Arrays; 

import org.json.JSONArray; 
import org.json.JSONObject; 

public class Foo 
{ 
    public static void main(String[] args) throws Exception 
    { 
    /* 
{ 
    "users": [ 
     { 
      "username": "jonbob", 
      "first_name": "Jon", 
      "last_name": "Bob", 
      "phone": "5555555555", 
      "full_name": "Jon Bob", 
      "id": 1 
     }, 
     { 
      "username": "joesmith", 
      "first_name": "Joe", 
      "last_name": "Smith", 
      "phone": "5555555555", 
      "full_name": "Joe Smith", 
      "id": 2 
     } 
    ] 
} 
    */ 
    String json = "{\"users\": [{\"username\": \"jonbob\", \"first_name\": \"Jon\", \"last_name\": \"Bob\", \"phone\": \"5555555555\", \"full_name\": \"Jon Bob\", \"id\": 1}, {\"username\": \"joesmith\", \"first_name\": \"Joe\", \"last_name\": \"Smith\", \"phone\": \"5555555555\", \"full_name\": \"Joe Smith\", \"id\": 2}]}"; 

    JSONObject result = new JSONObject(json); 
    JSONArray users = result.getJSONArray("users"); 
    int size = users.length(); 
    Friend[] friends = new Friend[size]; 
    for (int i = 0; i < size; i++) 
    { 
     JSONObject user = users.getJSONObject(i); 
     friends[i] = new Friend(user.getString("first_name"), user.getString("last_name")); 
    } 

    System.out.println(Arrays.toString(friends)); 
    // output: [Jon Bob, Joe Smith] 
    } 
} 

class Friend 
{ 
    String firstName; 
    String lastName; 

    Friend (String f, String l) {firstName = f; lastName = l;} 

    @Override 
    public String toString() {return String.format("%s %s", firstName, lastName);} 
}