首先,JSON有兩種結構:html
1)數組結構前端
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]
2)對象結構java
{
key1:value1,
key2:value2,
...
}
主要的操做步驟以下:sql
1)將查詢的條件從前端傳以必定的方式傳遞到後臺。數據庫
2)後臺根據查詢條件從數據庫中進行查找。json
3)創建JSONObject對象,將查詢的加過按照必定的規則添加到對象中,並返回。數組
4)在前端中經過JavaScript腳本解析後臺傳過來的JSON對象。(其中一般先採起eval()函數,使得後臺傳回來的JSON對象被做爲一段JavaScript腳本執行,而後對執行結果進行接下來的解析操做)。jsp
程序主體代碼以下:函數
<%@page contentType="text/html; charset=UTF-8"%> <%@page import="java.text.*,org.json.JSONObject"%> <%@page import="java.util.HashMap,java.util.List,java.util.ArrayList,java.util.Map,java.io.IOException"%> <%@page import="java.io.IOException,java.sql.*"%> <%@page import="dao.*,java.sql.ResultSet"%> <% String tableName="car_trace"; //開始查詢數據庫 List jsonList = new ArrayList(); try { ylx_db query_db = new ylx_db("test"); //這裏用的是MySQL裏的test數據庫,能夠根據須要改爲本身的數據庫名 //構造sql語句,根據傳遞過來的查詢條件參數 String sql="select * from "+tableName; System.out.println(sql); ResultSet rs = query_db.executeQuery(sql); while (rs.next()) { List list = new ArrayList(); //list.add(rs.getString("")); list.add(rs.getString("lng")); list.add(rs.getString("lat")); jsonList.add(list); System.out.println(rs.getString("lng")+","+rs.getString("lat")); } rs.close(); query_db.close(); } catch (SQLException sqlexception) { sqlexception.printStackTrace(); } //////////數據庫查詢完畢,獲得了json數組jsonList////////// //下面開始構建返回的json JSONObject jsonObj=new JSONObject(); jsonObj.put("aaData",jsonList); //以鍵值對的形式給出 response.setContentType("text/html; charset=UTF-8"); try { response.getWriter().print(jsonObj); response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { e.printStackTrace(); } %>
var url="get_gps.jsp"; alert(url); $.post(url,{},function(data){ //獲取傳回來JSON字段data var json=eval("("+data+")"); //執行eval函數,使JSON成爲一個JavaScript對象,接下來就是解析了 var list=json.aaData; var pointArray=new Array(); //儲存點 for(var i=0;i<list.length;i++){ var point=new BMap.Point(list[i][0],list[i][1]); pointArray.push(point); } alert(pointArray); var polyline=new BMap.Polyline(pointArray, {strokeColor:"red", strokeWeight:6, strokeOpacity:0.5}); map.addOverlay(polyline); alert("OK")
以上皆爲我的看法,望你們斧正。post