My Android成长之路(二)——【JSON】

如果android客户端接收到的是JSON字符串,就需要解析之。
android本身就集成了json的解析和拼装的方法 所以用起来就很方便。

import java.util.ArrayList;
import java.util.List;

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

public class ParseJson {
/**
* 解析JSON字符串
* 注: 这个是只有一个Object
* @param jsontext 字符串
* @return 返回JSONObject
*/
public static JSONObject getJson(String jsontext)
{
JSONObject object = null;
try {
JSONArray entries = new JSONArray(jsontext);
object = entries.getJSONObject(0);
} catch (Exception e) {
e.printStackTrace();
}
return object;
}

/**
* 解析JSON字符串
* 注:这个是多个JSONObject
* @param jsontext 字符串
* @return 返回JSONObject
*/
public static List<JSONObject> getJsons(String jsontext)
{
List<JSONObject> objs = new ArrayList<JSONObject>();
try {
JSONArray entries = new JSONArray(jsontext);
for (int i = 0; i < entries.length(); i++) {
JSONObject object = entries.getJSONObject(i);
objs.add(object);
}
} catch (Exception e) {
e.printStackTrace();
}
return objs;
}
}


下面就测试下,为了演示下json的拼装 所以又如下代码:


public class FActivity extends Activity
{
private TextView txtmain;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

setContentView(R.layout.fmain);
String s = "";

txtmain = (TextView) findViewById(R.id.txtmain);

JSONArray array = new JSONArray();

//用android自带的方法拼装json字符串,Person为测试实体类
List<Person> persons = new ArrayList<Person>();
persons.add(new Person("zhuqiang", 24, false));
//下面注释的就是适用于多个Person实体
//persons.add(new Person("xiyaqiang", 28, true));
//persons.add(new Person("sunhaibo", 23, false));
//persons.add(new Person("meibaocai", 26, false));
//persons.add(new Person("weiqiang", 29, true));
for (Person bean : persons)
{
// 单个用户JSON对象
JSONObject obj = new JSONObject();
try
{
obj.put("name", bean.getName());
obj.put("age", bean.getAge());
obj.put("marriage", bean.isMarriage());
} catch (Exception e) {
e.printStackTrace();
}
array.put(obj);
}

//这个是只有一个Object
//多个JSONObject ParseJson.getJsons(String jsontext)
s = ParseJson.getJson(array.toString()).getString("name");

txtmain.setText(s);

}
}


一般与HttpClient结合使用 因为服务器可以为Http方式返回的JSON字符串个客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值