我需要从this url的json获取这两个信息“matricula”和“nome”,但我不知道该怎么做。我想使用this class是一个不错的选择,但我不知道如何使用从url获取json的方法,我不知道如何在get json之后使用数组键。我很抱歉我要求你完成整个工作,但是因为我是android开发新手,我真的很困惑jsonarray,jsonobjects等。
答案 0 :(得分:0)
Java中的Map Interface中的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
您可以看到示例here
你的JSON
{"matricula":"201110460","nome":"Daniel de Faria Pedro"}
这只是一个JsonObject,因为它具有经典的“map”样式键值关联。 你简单需要做的是:
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();
}
答案 1 :(得分:0)
我会这样做:
确定你从数据库中获取了两列matricula和nome的信息,我想你会发送一个数组,所以我用这段代码构建数组
$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
}
答案 2 :(得分:0)
您可以查看我在使用本机android JSON
和JSONObject
对象或使用JSONArray
库解析Gson
文件时编写的示例/教程:< / p>