1、首先要理解几个概念
json对象,json数组,json字符串
json对象可以用JsonObject表示
json数组可以用JsonArray表示
json字符串就是就是一个String类型的字符串
然后在看下面的代码简单多了
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
// List集合转换json数组(与数组一致)
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
JSONArray jsonArray = JSONArray.fromObject(list);
System.err.println(jsonArray.toString());
// map集合转换json对象
Map<String, String> map = new HashMap<String, String>();
map.put("1", "1");
map.put("2", "2");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject.toString());
//将map集合转换为json数组(javabean与map类型一致)
JSONArray jsonArray2 = JSONArray.fromObject(map);
System.out.println(jsonArray2.toString());
// 一般数据(json字符串)转换为json
JSONArray jsonArray3 = JSONArray.fromObject("['1','2','4']");
System.out.println(jsonArray3);
}
}
更复杂的转换都是基于上面基础的转化。
最近在项目中用到一个将json字符串转换为自定义bean的数组对象
先将字符串转换为json数组,再利用JsonArray.toString方法将
指定的json数组转换为相应的自定义的bean对象
String users = request.getParameter("users");
JSONArray jsonArray = JSONArray.fromObject(users);
User[]users2 = (User[]) JSONArray.toArray(jsonArray, User.class);/