这是最原始的解析方法
Json格式有两种 数组形式和对象形式
所谓数组形式:
"['c','d','s','a']";
所谓对象形式:
"{'name':'hr','age':'25'}";
则Json解析也有两种形式 分别对应上面的两种Json形式
JsonArray解析底层为数组形式的json串
这样的数组形式有:数组[],List,Set
JsonObject解析底层为对象的Json串
这样的对象形式有:Map,引用类型对象
常用的方法有:
—————————–对象转json串
JSONArray.fromObject(*) 返回值为JsonArray //将数组、List、Set转换为json串
JsonObject.fromObject(*)返回值为JsonObject //将对象转换为json串
—————————-字符串转对象
User u = (User) JSONObject.toBean(jsonObject,User.class);//将字符串转换成User对象
JSONArray.toArray(jsonArray,String.class); //将对象转换为(String)数组
List list = (List) JSONArray.toCollection(jsonArray)
//将字符串转换成List
Map map = (Map)JSONObject.toBean(jsonObject,Map.class);//将json串转换成Map
练习所用的Demo
User对象 有Sring类型的name age 成员变量
/**
* 数组转换成json
*/
@Test
public void demo1(){
String[] array = {"张三","李四","王五"};
System.out.println(Arrays.toString(array));
JSONArray jsonArray = JSONArray.fromObject(array);
System.out.println(jsonArray);
}
/**
* List转换成json
*/
@Test
public void demo2(){
List<String> list = new ArrayList<String>();
list.add("aaa");list.add("bbb");list.add("ccc");
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
}
/**
* Set转换成json
*/
@Test
public void demo3(){
Set<String> set = new HashSet<String>();
set.add("aaa");set.add("aaa");set.add("bbb");set.add("ccc");
JSONArray jsonArray = JSONArray.fromObject(set);
System.out.println(jsonArray);
}
/**
* Map转换成json
*/
@Test
public void demo4(){
Map<String,String> map = new HashMap<String, String>();
map.put("name","herui");map.put("age","18");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject);
}
/**
* 对象转换成json
*/
@Test
public void demo5(){
// User u = new User("herui","18");
// JSONObject jsonObject = JSONObject.fromObject(u);
// System.out.println(jsonObject);
}
/**
* -------------------------------------------------------------------------------------
*/
/**
* json转换成对象
*/
@Test
public void demo6(){
String json = "{'name':'herui','age':'78'}";
JSONObject jsonObject = JSONObject.fromObject(json);
User u = (User) JSONObject.toBean(jsonObject,User.class);
System.out.println(u);
}
/**
* json转换成数组
*/
@Test
public void demo7(){
String json ="['a','v','d']";
JSONArray jsonArray = JSONArray.fromObject(json);
String[] s = (String[]) JSONArray.toArray(jsonArray,String.class);
String json2 = "[1,2,3,4]";
JSONArray jsonArray2 = JSONArray.fromObject(json2);
Integer[] i = (Integer[]) JSONArray.toArray(jsonArray2,Integer.class);
System.out.println(Arrays.toString(i));
// System.out.println(Arrays.toString(s));
}
/**
* json转换成List
*/
@Test
public void demo8(){
String json ="['a','v','d']";
JSONArray jsonArray = JSONArray.fromObject(json);
// List<String> list = (List<String>) JSONArray.fromObject(json);
List<String > list = (List<String>) JSONArray.toCollection(jsonArray);
System.out.println(list);
}
/**
* json转换成map
*/
@Test
public void demo10(){
String json = "{'name':'herui','age':'78'}";
JSONObject jsonObject = JSONObject.fromObject(json);
Map<String,String> map = (Map<String,String>)JSONObject.toBean(jsonObject,Map.class);
System.out.println(map);
}
方法不太好用 ,不够灵活。