返回顶部

收藏

在android中请求JSON数据

更多

android获得json数据并处理:

//JsonActivity.java
package cn.outofmemory.android;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONStringer;

import android.app.Activity;
import android.os.Bundle;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class JsonActivity extends Activity {
    Button button,buttonClear;
    TextView textView;
    String page;
    String str="";

     String url = "http://192.168.1.118/androidjsontest/index.php";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button = (Button) findViewById(R.id.btnFetch);
        buttonClear = (Button) findViewById(R.id.btnClear);
        textView = (TextView) findViewById(R.id.txtView);
        button.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                examineJSONFile();
            }
        });
        buttonClear.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                textView.setText("");
            }
        });

    }

    public String executeHttpGet(String URL) throws Exception 
    {
        //This method  for HttpConnection  
        BufferedReader bufferedReader = null;
        try 
        {
            HttpClient client = new DefaultHttpClient();
            client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android");
            HttpGet request = new HttpGet();
            request.setHeader("Content-Type", "text/plain; charset=utf-8");
            request.setURI(new URI(URL));
            HttpResponse response = client.execute(request);
            bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

            StringBuffer stringBuffer = new StringBuffer("");
            String line = "";

            String NL = System.getProperty("line.separator");
            while ((line = bufferedReader.readLine()) != null) 
            {
                stringBuffer.append(line + NL);
                System.out.print(stringBuffer);
            }
            bufferedReader.close();
            page = stringBuffer.toString();
            System.out.println(page+"page");
            return page;
        } 
        finally 
        {
            if (bufferedReader != null) 
            {
                try 
                {
                    bufferedReader.close();
                } 
                catch (IOException e)    
                {
                    Log.d("BBB", e.toString());
                }
            }
        }
    }

    void examineJSONFile()
    {
        try
        {

            String Value="" ;
            String str = "";
            page = executeHttpGet(url);
            Log.i("hello", str.toString());

            JSONObject object=new JSONObject(page);
            str=str+object.names().toString();

            String sub1=str.substring(2, str.length()-2);
            String[] names=sub1.split("\",\"");

            for (int i=0;i<names.length;i++) {
                Value=Value+names[i] +":"+object.get(names[i])+"\n";
                System.out.println(names[i]);

            }

           /* String sub=str.substring(1, str.length()-1);
            String[] names=sub.split(",");
            String[] keyValue=new String[names.length];

            for (int i=0;i<names.length;i++) {
                names[i]=names[i].replace("\"","");
                Value=Value+names[i] +":"+object.get(names[i])+"\n";
                //keyValue[i]=names[i] +":"+object.get(names[i])+"\n";
                System.out.println(names[i]);

            }*/

            textView.setText(Value); 

            /*for(int i=0;i<keyValue.length;i++){
                textView.setText(keyValue[i]);
            }*/

            Log.i("hello", str.toString());

        }
        catch (Exception je)
        {
            textView.setText("Error w/file: " + je.getMessage());
        }
    }

}

main.xml代码:

//==================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="#acd654"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button android:text="Fetch_Data"
         android:id="@+id/btnFetch"
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"></Button>
 <Button android:text="Clear_Screen"
         android:id="@+id/btnClear"
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content"></Button>
<TextView android:text="" 
          android:gravity="center"
          android:textColor="#000a44"
          android:id="@+id/txtView" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent"/>
</LinearLayout>

android menifest.xml

?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.outofmemory.android"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".JsonActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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

标签:java,android,json

收藏

0人收藏

支持

0

反对

0

发表评论