問題:
1)前台獲取到的json是什么形式?json字符串形式,還是json對象形式?
答:json字符串。
2)數據傳輸過程中的json是什么形式?
答:json字符串。
3)區分:json字符串、json對象、類對象。
數據傳遞的時候是json字符串。接收后,需要將json字符串轉成json對象,再將json對象轉成類對象。
4)數據傳遞過程中,也可能是json字符串數組。
獲取到json字符串數組后,需要將其轉換為對象數組,然后遍歷這個對象數組,獲取其中的值。並可以在每一步遍歷中進行一些操作。參考如下,
//json字符串數組 String str="[{\"id\":\"828\",\"title\":\"容易,.......\",\"doc_content\":\"文章內容\",\"write_time\":\"2018-01-08\",\"author\":\"作者\"}," + "{\"id\":\"829\",\"title\":\"哈哈哈哈哈哈哈哈哈啊哈標題\",\"doc_content\":\"文章內容\",\"write_time\":\"2018-01-08\",\"author\":\"作者\"}]"; //轉化為數組 Jtt[] ss=(Jtt[])JSONArray.toArray(JSONArray.fromObject(str),Jtt.class); //遍歷數組,並在每次遍歷中給jtt實體賦值(jtt是我自己定義的實體) for(int i=0;i<ss.length;i++){ Jtt jtt = new Jtt(); jtt.setId(ss[i].getId()); jtt.setTitle(ss[i].getTitle()); jtt.setAuthor(ss[i].getAuthor()); System.out.println(jtt); jtt=null;//將不用的引用指向null,等着被回收 }
*注意:
1)字符串數組在java中的寫法;
2)前台獲取到的json字符串,到了后端直接轉化為對象(本例中是:json字符串數組,及將json字符串數組轉換成對象數組);
3)new后,需要將不用的引用設為null。防止內存溢出;
4)直接在for循環中new對象、在for循環中指為null;
5)json字符串數組轉化為對象數組時,JSONArray需要導包import net.sf.json.JSONArray; 相應依賴如下,
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>