How to Json Parsing in android

前端 未结 4 1949
遇见更好的自我
遇见更好的自我 2021-01-07 08:18

http://docs.blackberry.com/sampledata.json

This is my web service and I want to parse and retrieve vehicleType, vehicleColor, fuel, name, experiencePoints, treadType

4条回答
  •  耶瑟儿~
    2021-01-07 08:48

    May be this code help for you

    public class JSONfunctions {
    
    public static JSONArray getJSONfromURL(String url) {
        InputStream is = null;
        String result = "";
        JSONArray jArray = null;
    
        // http post
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
    
        } catch (Exception e) {
            Log.e("log_tag", "Error in http connection " + e.toString());
        }
    
        // convert response to string
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
        } catch (Exception e) {
            Log.e("log_tag get data string ",
                    "Error converting result " + e.toString());
        }
    
        try {
    
            jArray = new JSONArray(result);
        } catch (JSONException e) {
            Log.e("log_tag create object ",
                    "Error parsing data " + e.toString());
        }
    
        return jArray;
    }
      }
    

    This is parsing code example you can change this.

    public class Main extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listplaceholder);
    
        JSONArray json = JSONfunctions
                .getJSONfromURL("http://docs.blackberry.com/sampledata.json");
    
        for (int i = 0; i < json.length(); i++) {
    
            try {
                Log.e("json names vehicleType", ""
                        + json.getJSONObject(i).getString("vehicleType"));
                Log.e("json names vehicleColor", ""
                        + json.getJSONObject(i).getString("vehicleColor"));
                Log.e("json names fuel",
                        "" + json.getJSONObject(i).getString("fuel"));
                Log.e("json names treadType", ""
                        + json.getJSONObject(i).getString("treadType"));
    
                Log.e("json names approvedOperators",
                        ""
                                + json.getJSONObject(i).getJSONArray(
                                        "approvedOperators"));
    
                JSONArray array = json.getJSONObject(i).getJSONArray(
                        "approvedOperators");
                for (int j = 0; j < array.length(); j++) {
    
                    Log.e("json names approvedOperators name ", ""
                            + array.getJSONObject(j).getString("name"));
                    Log.e("json names approvedOperators experience ",
                            ""
                                    + array.getJSONObject(j).getString(
                                            "experiencePoints"));
    
                }
    
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }
    }
    

提交回复
热议问题