Json在android中调用

时间:2013-04-26 12:42:42

标签: android json

我是Android中的新蜜蜂,因此关于android的知识并不是那么广泛。

我正在尝试在android中实现Json调用,我正在使用虚拟代码来获取数据库中所有联系人的列表。

package com.example.library;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class SecondActivity extends Activity {



    Button show_data;
    JSONObject my_json_obj;
    String path,firstname,lastname;
    {
    path = "http://192.168.71.129:3000/contacts";
        HttpClient client = new DefaultHttpClient();
        HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
        HttpEntity  entity;
        HttpResponse response = null;
        HttpURLConnection urlconn;
        my_json_obj = new JSONObject();

    }
}

我不知道这是否是正确的方法,但是这个代码已经存在于另一个项目中,我刚刚做了一些改变。

请指导我完成这一个,因为我已经经历了很多stackoverflow和谷歌的答案,但它是非常令人困惑的,因为我只是一个初学者,并没有知道在Android中的json调用。

2 个答案:

答案 0 :(得分:3)

我可以给你一大堆代码然后说“嘿试试这个”,但就像你说你是Android新手所以我根本不会。 我认为通过尝试然后简单地复制粘贴代码(大部分时间),您可以学到更多的价值

当您进行网络请求和解析数据时,您需要考虑几件事情。

网络请求你必须始终在一个单独的线程中然后在UI线程中执行此操作,因为如果你没有得到 NetworkOnMainUiThreadException ,如果我是正确的话。

这同样适用于解析从请求中检索到的数据。 我没有在你当前的代码中看到任何数据解析,但我只是想给你一个单挑,因为你会在你的应用程序中的某个时候做这个。

Here您可以找到如何使用AsyncTask进行线程化的教程。这是在Android中应该如何做的“方式”,他们真的很容易让你。

阅读该教程时,您将获得基本知识,可以在本课程中学习。

当你获得线程的概念以及如何使用这个新添加的技能时,我建议阅读并跟进这个 json 教程here

我希望这会有所帮助

答案 1 :(得分:0)

试试这个,结果变量有你的答案

try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("paset_your_url_here");
        HttpResponse response = client.execute(request);  

        BufferedReader in = new BufferedReader
        (new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String line = "";
        String NL = System.getProperty("line.separator");
        while ((line = in.readLine()) != null) {

            sb.append(line + NL);
        }

        in.close();
          result = sb.toString();
          Log.i("", "-----------------------"+result);


    } catch(Exception e) {
        e.printStackTrace();
    }finally {
        if (in != null) {
            try {
                in.close();
                } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

如果你想要点击json然后先用谷歌搜索,如果你得到你的答案然后投票:)