List怎么封装到JSON对象中,然后再还原成List
服务器端,需要将List型的数据,变成一个可以传给android手机端的JSON对象。然后在android端,将收到的JSON原样还原为List
对JSON用法不是很精通,只会传String型的键值对。不知道List该怎么处理了。请高手指点
------解决方案--------------------
库用的是json-lib
TestListMapJson.java
package com.armslee.json.test.cases;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
public class TestListMapJson {
/**
* @param Lavender
*/
public static void main(String[] args) {
Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
List> list = new ArrayList>();
map1.put("name","小明");
map1.put("age","23");
map1.put("sex","男");
list.add(map1);
map2.put("name","小王");
map2.put("age","24");
map2.put("sex","女");
list.add(map2);
map3.put("name","小张");
map3.put("age","22");
map3.put("sex","男");
list.add(map3);
String jsonStr = JSONArray.fromObject(list).toString();
JSONArray ja = JSONArray.fromObject(jsonStr);
@SuppressWarnings({ "deprecation", "unchecked" })
List> listBack = JSONArray.toList(ja, HashMap.class);
System.out.println(listBack.size());
int i = 0;
for (Map map : listBack) {
i++;
StringBuffer sb = new StringBuffer();
sb.append("第 "+i+" 个MAP ---》");
if(map.containsKey("name")){
sb.append(" Name:"+map.get("name"));
}
if(map.containsKey("age")){
sb.append(" Age:"+map.get("age"));
}
if(map.containsKey("sex")){
sb.append(" Sex:"+map.get("sex"));
}
System.out.println(sb.toString());
}
}
}
------解决方案--------------------
andriod sdk本身就自带了json解析包用org.json.JSONArrray jsonArray=new org.json.JSONArray(jsonStr);像这种东西楼主应该多看api和andriod官网。andriod3.0后还自带了google的Gson