从url获取json并解析信息

时间:2013-08-28 17:54:22

标签: android json

我需要从this url的json获取这两个信息“matricula”和“nome”,但我不知道该怎么做。我想使用this class是一个不错的选择,但我不知道如何使用从url获取json的方法,我不知道如何在get json之后使用数组键。我很抱歉我要求你完成整个工作,但是因为我是android开发新手,我真的很困惑jsonarray,jsonobjects等。

3 个答案:

答案 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 JSONJSONObject对象或使用JSONArray库解析Gson文件时编写的示例/教程:< / p>

Parsing JSON Files