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;
}*/
}