客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象
类型一:JavaBean
类型二:List<JavaBean>
类型三:List<String>
类型四:List<Map<String,Object>>
将上面的四种数据对象转换成json字符串的方法都是一样的
Gson gson = new Gson();
String jsonString = gson.toJson(obj);
方法/步骤
将json字符串转化成JavaBean对象
Person person = new Person("1","gson",1); Gson gson = new Gson(); //这里将javabean转化成json字符串 String jsonString = gson.toJson(person); System.out.println(jsonString); //这里将json字符串转化成javabean对象, person = gson.fromJson(jsonString,Person.class);
将json字符串转化成List<JavaBean>对象
Person person1 = new Person("1","gson1",1); Person person2 = new Person("2","gson2",2); List<Person> persons = new ArrayList<Person>(); persons.add(person1); persons.add(person2); Gson gson = new Gson(); //这里将lsit<javabean>转化成json字符串 String jsonString = gson.toJson(persons); //解析json字符串 List<Person> persons2 = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());
将json字符串转化成List<String>对象
List<String> list = new ArrayList<String>(); list.add("gson1"); list.add("gson2"); list.add("gson3"); Gson gson = new Gson(); String jsonString = gson.toJson(list); System.out.println("json字符串:"+jsonString); //解析json字符串 List<String> list2 = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());
将json字符串转化成List<Map<String,Object>>对象
Map<String,Object> map = new HashMap<String,Object>(); map.put("key1", "value1"); map.put("key2", "value2"); Map<String,Object> map2 = new HashMap<String,Object>(); map2.put("key1", 1); map2.put("key2", 2); List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); list.add(map); list.add(map2); Gson gson = new Gson(); String jsonString = gson.toJson(list); System.out.println("json字符串:"+jsonString); //解析json字符串 List<Map<String,Object>> list2 = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>(){}.getType());