安卓解析json

重点是开启网络权限

难点是调用函数

 

 

开启网络权限

    </application>

<uses-permission android:name="android.permission.INTERNET"> 

</uses-permission> 

</manifest>

 

读json的函数

public static String get(String urlString)  {

        

        /*try{

            HttpGet request = new HttpGet(urlString);

            String result=getHttpClient().execute(request,new BasicResponseHandler());

            return result;

        }catch(IOException e){

            throw e;

        }*/

        

        String result="";

        BufferedReader in=null;

        try {

            HttpClient client = new DefaultHttpClient();

            HttpGet request=new HttpGet(urlString);

            HttpResponse response = client.execute(request);

            

            in=new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

            StringBuffer sb=new StringBuffer("");

            String line="";

            String NL=System.getProperty("line.separator");

           // String NL="";

            while((line=in.readLine())!=null){

                sb.append(line+NL);

            }

            in.close();

            result=sb.toString();

            result=JsonFilter(result);

        } 

        catch (Exception e) {

            e.printStackTrace();

        }

        finally{

            if(in!=null){

                try{

                    in.close();

                }catch(IOException e){

                    e.printStackTrace();

                }

            }

        }

        return result;        

    }

    

    /*

     * 对json字符串进行过滤,防止乱码和黑框

     */

    public static String JsonFilter(String jsonstr){

        return jsonstr.substring(jsonstr.indexOf("{")).replace("\r\n","\n"); 

    }

调用函数

/*****************************************************主要是点击事件*********************************************/     

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        

          final Button button1 = (Button) findViewById(R.id.button1);//final获得句柄 获得句柄

          final   TextView textView =  (TextView) findViewById(R.id.textView1);

                  

      

          button1.setOnClickListener(new OnClickListener()

          { 

             public void onClick(View v)

             {

                

                 textView.setText(get("http://www.weather.com.cn/data/cityinfo/101010100.html"));

                 



                     }

                   

             

          });

 

    }

 

你可能感兴趣的:(json)