このURLのjsonからこの2つの情報「matricula」と「nome」を取得する必要がありますが、これを行う方法がわかりません。このクラスを使用するのは良いオプションだと思いますが、url から json を取得するメソッドの使用方法がわかりません。また、json を取得した後に配列キーを操作する方法もわかりません。申し訳ありませんが、すべての作業をお願いしておりますが、それは私が Android 開発に不慣れで、jsonarray や jsonobjects などと本当に混乱しているためです..
質問する
229 次
3 に答える
0
私はこれをします:
matricula と nome の 2 つの列を持つデータベースから情報を取得すると仮定すると、配列を送信するので、このコードで配列を作成します。
$json['test'][]=array( 'matricula' => $row["matricula"], 'nome' =>$row["nome"])
次に、取得方法を知っていると仮定して、その情報を次のように解析します。
JSONObject object = new JSONObject(jsonResult);
JSONArray test = object.getJSONArray("test");
for(int i = 0; i < test.length(); i++){
JSONObject c = test.getJSONObject(i);
String matricula= c.getString("matricula");
String nome = c.getString("nome");
//do whatever you want with it
}
于 2013-08-28T18:04:42.557 に答える
0
Java のMap インターフェイスのような JsonObject :
値が関連付けられたキーを格納します。
例:
JsonObject obj = new JsonObject();
JsonObject obj1 = new JsonObject();
obj1.put("obj1_key1","obj1_value1");
obj1.put("obj1_key2","obj1_value2");
obj1.put("obj1_key3","obj1_value3");
obj.put("obj1",obj1);
JsonArray は、JavaのList Interfaceのようなものです。
0 から N までのインデックスを持つ値を格納します。
例:
JsonArray array = new JsonArray();
JsonObject obj = new JsonObject();
obj.put("xxx","yyy");
array.add(obj);
json 文字列を取得する場合は、配列が で始まる場合は JsonArray を使用して解析する必要があることを覚えておいてください。配列が で始まる[]
場合は、JsonObject を{}
使用する必要があります。
ここで例を見ることができます
あなたのJSON
{"matricula":"201110460","nome":"Daniel de Faria Pedro"}
これは、従来の「マップ」スタイルのキーと値の関連付けがあるため、単なる JsonObject です。あなたがする必要があるのは簡単です:
try {
URL url = new URL("http://tcc-teste.aws.af.cm/api/get/aluno/1");
URLConnection connection = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = "", json = "";
while((line = reader.readLine())!=null){
json+=line;
}
JsonObject yourObject = new JsonObject(json);
String matricula = yourObject.get("matricula");
String nome = yourObject.get("nome");
System.out.println(nome+" - "+matricula);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
于 2013-08-28T17:57:56.633 に答える