android_json解析

1.User

2.HttpUtils.java

package com.json.utils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class HttpUtils {

	public HttpUtils() {
		// TODO Auto-generated constructor stub
	}
	public static String getJsonContent(String url_path){
		try {
			URL url=new URL(url_path);
			HttpURLConnection httpUrlConnection=(HttpURLConnection) url.openConnection();
			httpUrlConnection.setConnectTimeout(300);
			httpUrlConnection.setDoInput(true);
			httpUrlConnection.setRequestMethod("GET");
			int code=httpUrlConnection.getResponseCode();
			if(code==200){
				
				return changeInputStream(httpUrlConnection.getInputStream());
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "";
		
	}
	private static String changeInputStream(InputStream inputStream) {
		String jsonString="";
		ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
		int len=0;
		byte[] data=new byte[1024];
		try {
			while((len=inputStream.read(data)) !=-1){
				
				byteArrayOutputStream.write(data, 0, len);
			}
			jsonString=new String(byteArrayOutputStream.toByteArray());
			System.out.println("jsonString--->"+jsonString);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return jsonString;
	}

}

3.JsonTools.java

package com.json.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.json.domain.User;

/** 
 * 完成对json数据的解析
 * @author Aaron
 *
 */
public class JsonTools {

	public JsonTools() {
		// TODO Auto-generated constructor stub
	}
	public static User getUser(String key,String jsonString ){
		User user=new User();
		try {
			JSONObject jsonObject=new JSONObject(jsonString);
			JSONObject userObject=jsonObject.getJSONObject("user");
			user.setId(userObject.getInt("id"));
			user.setName(userObject.getString("name"));
			user.setAge(userObject.getInt("age"));
			System.out.println("user-->"+user);
		} catch (Exception e) {
			// TODO: handle exception
		}
		return user;
		
	}
	public static List<User> getUsers(String key,String jsonString){
		List<User> list=new ArrayList<User>();
		try {
			JSONObject jsonObject=new JSONObject(jsonString);
			//返回json的数组
			JSONArray jsonArray=jsonObject.getJSONArray(key);
			for(int i=0;i<jsonArray.length();i++){
				JSONObject jsonObject2=jsonArray.getJSONObject(i);
				User user=new User();
				user.setId(jsonObject2.getInt("id"));
				user.setName(jsonObject2.getString("name"));
				user.setAge(jsonObject2.getInt("age"));
				list.add(user);
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return list;
		
	}
	public static List<String> getListString(String key,String jsonString){
		List<String> list=new ArrayList<String>();
		try {
			JSONObject jsonObject=new JSONObject(jsonString);
			JSONArray jsonArray=jsonObject.getJSONArray(key);
			for(int i=0;i<jsonArray.length();i++){
				String msg=jsonArray.getString(i);
				list.add(msg);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
		
	}
	public static List<Map<String,Object>> getListMap(String key,String jsonString){
		List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
		try {
			JSONObject jsonObject=new JSONObject(jsonString);
			JSONArray jsonArray=jsonObject.getJSONArray(key);
			for(int i=0;i<jsonArray.length();i++){
				JSONObject jsonObject2=jsonArray.getJSONObject(i);
				Map<String,Object> map=new HashMap<String, Object>();
				Iterator<String> iterator=jsonObject2.keys();
				while(iterator.hasNext()){
					String jsonKey=iterator.next();
					Object jsonValue=jsonObject2.get(jsonKey);
					if(jsonValue==null){
						jsonValue="";
					}
					map.put(jsonKey, jsonValue);
				}
				list.add(map);
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return list;
		
	}

}

4.android_jsonActivity.java

package com.json;

import java.util.List;
import java.util.Map;

import com.json.domain.User;
import com.json.utils.HttpUtils;
import com.json.utils.JsonTools;

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

public class android_jsonActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
	private Button btuser,btusers,btlitString,btlistMap;
	
    private static final String TAG="android_jsonActivity";
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btuser=(Button) this.findViewById(R.id.user);
        btusers=(Button) this.findViewById(R.id.users);
        btlitString=(Button) this.findViewById(R.id.liString);
        btlistMap=(Button) this.findViewById(R.id.listMap);
        
        btuser.setOnClickListener(this);
        btlitString.setOnClickListener(this);
        btusers.setOnClickListener(this);
        btlistMap.setOnClickListener(this);
    }

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.user:
			String path="http://192.168.2.101:8080/jsonProject/servlet/JsonAction?action_flag=user";
			String  jsonString=HttpUtils.getJsonContent(path);
			User user=JsonTools.getUser("user", jsonString);
			Log.i(TAG, user.toString());
			break;
		case R.id.users:
			String path2="http://192.168.2.101:8080/jsonProject/servlet/JsonAction?action_flag=users";
			String jsonString2=HttpUtils.getJsonContent(path2);
			List<User> list=JsonTools.getUsers("users", jsonString2);
			Log.i(TAG, list.toString());
			break;
		case R.id.liString:
			String path3="http://192.168.2.101:8080/jsonProject/servlet/JsonAction?action_flag=listString";
			String jsonString3=HttpUtils.getJsonContent(path3);
			List<String> list3=JsonTools.getListString("listString", jsonString3);
			Log.i(TAG, list3.toString());
			break;
		case R.id.listMap:
			String path4="http://192.168.2.101:8080/jsonProject/servlet/JsonAction?action_flag=listmap";
			String jsonString4=HttpUtils.getJsonContent(path4);
			List<Map<String,Object>> list4=JsonTools.getListMap("listmap", jsonString4);
			Log.i(TAG, list4.toString());
			break;

		}
		
	}
}


输出结果

ht



源码


2.从json数据中取出某个值

a.可以new 一个JSONObject 对象用get方法来取得

b.也可以用JSONToken来取得

来源转载

package com.test.json;

import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;

import com.google.gson.Gson;

import android.app.Activity;
import android.os.Bundle;

public class Android_testActivity extends Activity {
    /** Called when the activity is first created. */
	private User user;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String jsonData2="{\"name\":\"xiong\",\"age\":18}";
        String jsonData1="{\"name\":\"xiong\",\"age\":18}";
        System.out.println(jsonData2);
        
        try {
        	JSONObject jsb=new JSONObject(jsonData2);
        	System.out.println(jsb);
        	
        	System.out.println(jsb.get("age"));
        	/*JSONTokener jsonParser=new JSONTokener(jsonData2);
        	System.out.println(jsonParser);
			JSONObject js=(JSONObject) jsonParser.nextValue();
			System.out.println(js.getInt("age"));*/
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        
      /*  user=parseUserFromJson(jsonData2);*/
        
        
        
    }
    /*public User parseUserFromJson(String jsondate){
    	Gson gson=new Gson();
    	user=gson.fromJson(jsondate, User.class);
    	return user;
    }*/
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值