2013-10-21 54 views
1

我有簡單的信息樹結構在我的D3代碼。 D3的腳本呼籲從腳本d3.json()函數JSON和所產生的JSON是給樹結構data.Now我有一對夫婦的信息將來自數據庫,並擊中了Servlet。我必須在Servlet中動態地創建json,以便它可以在用戶響應時進行更改。下面是我使用的json的腳本& ..如何返回一個JSON對象,趕上在Ajax調用在HTML

這是我的HTML文件,我從這裏向Ajax調用了Servlet。 Ajax調用Servlet ,但獲取響應時出錯。我收到「發生錯誤」的message.When我運行servlet ......

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script>    
     function doajax(){ 
      $.ajax({ 
       url: "AccountServlet", 
       type: "post", 
       dataType: "json", 

       error:function(){ 
        alert("error occured!!!"); 
       }, 
       success:function(data){ 
        alert(data.fullName + "\n" + data.mobileNo); 
       } 
      }); 
     } 
    </script> 

這是我在哪裏特林得到響應回來 這個文件的HTML只是調用我得到一個錯誤occuree消息的響應Servlet.But ...

在我創造這樣

 ArrayList<DistinctSourceCount> countList = new ArrayList<DistinctSourceCount>(); 
     countList.add(new DistinctSourceCount("Jan", 1800)); 
     countList.add(new DistinctSourceCount("Feb", 1500)); 
     countList.add(new DistinctSourceCount("March", 2000)); 
     countList.add(new DistinctSourceCount("April", 1550)); 
     countList.add(new DistinctSourceCount("May", 1000)); 
     countList.add(new DistinctSourceCount("June", 1700)); 
     countList.add(new DistinctSourceCount("July", 1400)); 
     countList.add(new DistinctSourceCount("Aug", 1900)); 
     countList.add(new DistinctSourceCount("Sept", 1000)); 
     countList.add(new DistinctSourceCount("Oct", 1500)); 
     countList.add(new DistinctSourceCount("Nov", 1100)); 
     countList.add(new DistinctSourceCount("Dec", 2000)); 

     Gson gson = new Gson(); 
     JsonArray arrayObj = new JsonArray(); 
     for (int i = 0; i < countList.size(); i++) { 
      DistinctSourceCount count = countList.get(i); 
      JsonElement linObj = gson.toJsonTree(count); 
      arrayObj.add(linObj); 
     } 

     JsonObject myObj = new JsonObject(); 
     myObj.addProperty("success", true); 
     myObj.add("topList", arrayObj); 
     myObj.addProperty("totalCount", countList.size()); 

     System.out.println(myObj.toString()); 
     System.out.close(); 

這個JSON的accountServlet是我迄今爲止所做的代碼。任何人都可以幫助我瞭解如何在Servlet中創建json對象並獲取回覆腳本?請任何人幫忙

+0

,最好你有一個像一個RESTful框架[新澤西州](https://jersey.java.net/)或[resteasy](http://www.jboss.org/resteasy) – Lifecube

回答

1

您必須在servlet中創建json對象。然後在您的腳本中使用ajax調用來檢索該json。對於servlet的創建JSON你可以使用像Gsonjava-json任何庫。

例如:

 JSONObject jsonObject = new JSONObject(); 
     jsonObject.put("name","flare"); 
     JSONArray jsonArray = new JSONArray(); 
     JSONObject jsonObject_child = new JSONObject(); 
     jsonObject_child.put("name", "analytics"); 
     jsonArray.put(jsonObject_child); 
     jsonObject.put("children",jsonArray); 
     System.out.println(jsonObject); 

,如下列Ajax代碼:

 $.ajax({ 
     type: "POST", 
     url: "PATH_OF_SERVLET", 
     dataType: 'json', 
     success: function(response) { 
     // Parse your response from Servlet here. 
     } 

    }); 
+0

它會返回一個HTML響應? – lucifer

+0

@lucifer您必須將json dynamicallty的內容通過該元素的id或class添加到html中。 – Jhanvi

+0

請你看看我的新的編輯我使用這個HTML文件 – lucifer

相關問題