2012-07-11 2 views
1

jqPlot을 사용하고 있기 때문에 JSON을 통해 여러 시리즈를 jqplot에 보내는 방법을 알기에 알맞은 곳을 찾을 수 없으므로이를 해결하려고 노력할 것입니다..ajax 호출에서 두 개의 JSON 배열을 반환하는 방법은 무엇입니까?

그래서 여기에 약간의 배경이다 : 지금

, 내 서블릿을 호출하고 난 차트에 표시 할거야 데이터와 JSON 배열을 반환 할 수 있습니다.

AJAX 호출

$.ajax({ 
      type: 'POST', 
      cache: 'false', 
      data: params,    
      url: '/miloWeb/PlotChartServlet', 
      async: false, 
      dataType: 'json', 
      success: function(series){     
       coordinates = [series] ; 
      }, 
      error: function (xhr, ajaxOptions, thrownError){ 
       alert(ajaxOptions); 
      } 
     }); 

SERVLET

private void generateCoordinates(HttpServletRequest request, HttpServletResponse response) throws IOException{ 

    JSONArray coordinates = new JSONArray(); 
    try { 
     coordinates = findChartCoordinatesByPatientPK(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    response.getOutputStream().print(coordinates.toString()); 

} 

이것이 수행하는 문자열을 반환 할 수 있습니다 :

[[ "2000년 7월 6일", " 22.0 "], ["08/06/2000 ","20.0 "], ["08/06/2003 ","15.0 "], ["08/06/2005 ","35.0 " 08.06/2010 ","10.0 "]

그래서 나는 변수에 '좌표'를 사용하여 jqPlot 그래프를 플롯들을 사용 : 나는 하드 코딩 경우

:

모든 것이 잘 작동이 시점까지
var plot10 = $.jqplot ('chartdiv', coordinates); 

, 지금은 달성하기 위해 노력하고있어 온다 다른 배열 안에있는 두 배열을 상징하는 String :

[[["07/06/2000","22.0"],["08/06/2000","20.0"],["08/06/2003","15.0"],["08/06/2005","35.0"],["08/06/2007","12.0"],["08/06/2010","10.0"],["08/06/2012","10.0"]], [["07/06/2000","21.0"],["08/06/2000","19.0"],["08/06/2003","14.0"],["08/06/2005","34.0"],["08/06/2007","11.0"],["08/06/2010","9.0"],["08/06/2012","9.0"]]] 

jQplot을 사용하여 차트에서 두 개의 다른 줄을 그릴 수 있습니다!

SERVLET에게

private void generateCoordinates(HttpServletRequest request, HttpServletResponse response) throws IOException{ 
     JSONArray coordinates = new JSONArray(); 
     JSONArray coordinates2 = new JSONArray(); 
     try { 
      coordinates = VitalsBB.findChartCoordinatesByPatientPK(); 
      coordinates2 = VitalsBB.findChartCoordinatesByPatientPK2(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     response.getOutputStream().print(coordinates.toString() + ", " + coordinates2.toString()); 

    } 

작동하지 않습니다하지만 그것은 나에게 구문 분석 오류를 제공 작동하지 않습니다 그래서 같은 일을 정확히 서블릿을 통해 하나 같은 문자열을 반환했습니다. 그렇다면 AJAX 호출을 수정해야합니까? 또는 두 개의 JSON arrays.toString()을 내 양식에 돌려주고 변수에 저장하는 방법이 있습니까? 아니면 두 변수가 필요합니까?

+1

출력을'[[''와' ']' '' '을 사용하여 포장 해 보았습니까? JSON 배열이 필요하다는 것을 알아 두십시오. – TheZ

+0

그것은 IT 였고, 시간당 뭔가 기본적인 것을 보냈습니다. 감사합니다. – Myy

+0

이전에 작동하고 무언가를 변경하면 방금 논리가 변경된 곳을 항상 확인하십시오. 그것은 가능성이 범인 코드 :) – TheZ

답변

7

response.getOutputStream().print()을 호출 할 때 두 개의 하위 배열을 외부 배열 대괄호로 묶지 않을 것입니다.

대신을 시도해보십시오

response.getOutputStream().print("[" + coordinates.toString() + ", " + coordinates2.toString() + "]"); 

어레이를 하드 코딩 할 때 코드 일 경우

는,이 작동합니다.

+0

고마워요 pb2q, 그게다고, 정말 고마워! – Myy

관련 문제