如何在Android Studio中使用url解析Json

时间:2014-12-20 12:54:28

标签: android json

我有这个Json

{'information':  [{"id_module":"123456","adresse_mac":"0.0.0.1","mot_de_passe":"mdp123"}]}

并且我想使用url将“adresse mac”放入一个字符串中,但我真的不知道如何做到这一点,所以如果有人可以帮助我那就太棒了。我做了很多研究但是教程很多我觉得很糟糕。我是初学者,这是我的第一个应用,所以只是宽容

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
            .detectAll()
            .penaltyLog()
            .penaltyDialog()
            .build());

    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll()
            .penaltyLog()
            .build());





    JSONObject json = null;
    String str = "";
    HttpResponse response;
    HttpClient myClient = new DefaultHttpClient();
    HttpPost myConnection = new HttpPost("the url i want");
}
    public void parseJson(String jsonString)
    {
        try
        {
            JSONObject json = new JSONObject(jsonString);
            JSONArray userdetails = json.getJSONArray("information");
            for (int i=0; i<userdetails.length(); i++)
            {
                JSONObject user = userdetails.getJSONObject(i);
                String address = user.getString("id_module");
                String name = user.getString("mot_de_passe");
                String userid = user.getString("adresse_mac");


                TextView url = (TextView) findViewById(R.id.url);
                url.setText(userid);



            }
        }
        catch (Exception e) {}

    }

2 个答案:

答案 0 :(得分:2)

如果您从网址获取此JSON数据,我建议您必须使用JSONParser类来解析JSON。有许多方法可以解析JSON字符串。我个人使用JSONParser。 Google JSONParser.java并将其下载并复制到您的源文件夹中。将JSONparser类导入到您的活动中,主要是如果我使用Internet从URL获取数据我使用Asynctask从URL进行解析。

这是AsyncTask

用于调用AsyncTask使用新的Class_Name()。execute();

class Class_Name extends AsyncTask<String, String, String> {


    // JSON parser class
    JSONParser jsonParser = new JSONParser();

    // testing on Emulator:
    private String _URL = "Your_URL";


    @Override
    protected void onPreExecute() {
        super.onPreExecute();

    }

    @Override
    protected String doInBackground(String... args) {
        // TODO Auto-generated method stub
        // Check for success tag
        int success;
                    try {
            // Building Parameters if parameter present

            List<NameValuePair> params = new ArrayList<NameValuePair>();

            params.add(new BasicNameValuePair("Pram1", param1));

            Log.d("request!", "starting");

            // Posting user data to script
            JSONObject json = jsonParser.makeHttpRequest(_URL, "POST",
                    params);

            // full json response
            Log.d("get data", json.toString());

            int id_module = json.getInt("id_module");
            String adresse_mac = json.getString("adresse_mac");
            String mot_de_passe = json.getString("mot_de_passe");




        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;

    }

    /**
     * After completing background task Dismiss the progress dialog
     * **/
    protected void onPostExecute(String file_url) {
        // dismiss the dialog once product deleted
        }


}

Codelord

答案 1 :(得分:1)

试试此代码

    try {
        JSONObject jsonObject = new JSONObject("");
        JSONArray jsonArray = jsonObject.getJSONArray("information");
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject youValue = jsonArray.getJSONObject(i);
            String idModule = youValue.getString("id_module");
            // Use the same for remaining values
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

希望有所帮助