要使用json,首先是要引入夹包,需要的夹包如下图:
可以依据夹包的名字去网上下载
引入夹包之后就是实现具体的功能
============开始================
===========1:json格式的字符串转换为list====
/**
* json格式的字符串转换为list
* 注:list中是多个map或是多个javabean实体
*/
public void test3(){
String json="[{"id":1001,"name":"蓝星"}," +
"{"id":1002,"name":"红心"}," +
"{"id":1003,"name":"白皙"}," +
"{"id":1004,"name":"紫嫣"}]";
JSONArray jsonArray=JSONArray.fromObject(json);
//List<Map> list=jsonArray.toList(jsonArray, Map.class);
List<Map> list=(List)jsonArray.toCollection(jsonArray, Map.class);
for(Map u:list){
System.out.println(u.get("name"));
}
}
//或者封装为公共的方法
/**
* json格式的字符串转换为list
* 注:list中是多个map或是多个javabean实体
* 引用这个方法举例:List<Map> list=test3(json,Map.class);----形参json自定义一个json字符串即可,可以使用上面的那个。
这是转成Map,转成实体如下
* List<User> list=test3(json,User.class);---自定义一个javabean,User类,一定要和json格式相同
*/
public static <T> List<T> test3(String json,Class<T> clazz){
JSONArray jsonArray=JSONArray.fromObject(json);
List<T> list=(List)jsonArray.toCollection(jsonArray, clazz);
return list;
}
===========1:json格式的字符串转换为Map或是实体===
/**
*
* @param json
* @param clazz
* @return
*/
public static <T> T test2(String json,Class<T> clazz){
JSONObject object=JSONObject.fromObject(json);
T t=(T)JSONObject.toBean(object, clazz);
return t;
}
/*测试数据如下,
String json="{"id":1001,"name":"lanxing"}";
Map m=test2(json,Map.class);
System.out.println(m.get("id"));
*/
==============将map、实体、list转json字符串=====================
/**
*将map、实体、list转json字符串
*/
public static String test1(Object obj){
JSONObject jsonbject=JSONObject.fromObject(obj);
String s=jsonbject.toString();
return s;
}
============== //根据key获取json中的value值,一般用于返回值的判断=============
public static void test0(){
Map m=new HashMap();
m.put("success",true);
m.put("name1","lanxing");
JSONObject jsonbject=JSONObject.fromObject(m);
//根据key获取json中的value值
boolean b=jsonbject.getBoolean("success");
System.out.println(b);//true
}