2017-10-02 8 views
0

私はこれに助けが必要です、jsonオブジェクトの問題を解析するようです。私はそれがjson要素の代わりにjson配列を必要とすると信じていますか?助けてください。前もって感謝します。ここ春のブート完全なカレンダー、jsonを返すことができません

次のようにあなたのコードを変更することができ、私のcalendar.htmlが

<script> 
$.getJSON(window.location.href + '/getRoster', function(data) { 
    $(document).ready(function() { 

     var calendar = $('#calendar').fullCalendar({ 
      header : { 
       left : 'prev,next today', 
       center : 'title', 
       right : 'month,basicWeek,basicDay' 
      }, 
      defaultDate : '2017-09-12', 
      navLinks : true, // can click day/week names to navigate views 
      editable : false, 
      eventLimit : false, // allow "more" link when too many events 
      events : [ data ] 
     }); 

    }); }); 
    </script> 

相続人は私のコントローラ

@RequestMapping(value = "/calendar/getRoster", method = RequestMethod.GET) 
public @ResponseBody String getRoster(HttpServletResponse response) { 

    List<Duty> dutyList = dutyService.findAll(); 
    log.info("Size: {}", dutyList.size()); 
    Map<String, Object> map = new HashMap<String, Object>(); 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 

    for(int i = 0; i < 4; i++) { 
     String role = dutyList.get(i).getDuty(); 
     String name = dutyList.get(i).getName(); 
     String title = role + ": " + name; 
     String startDate = sdf.format(dutyList.get(i).getStartDutyDate()); 
     String endDate = sdf.format(dutyList.get(i).getEndDutyDate()); 

     log.info("Title: {} startDate: {} endDate: {}", title, startDate, endDate); 

     map.put("title", title); 
     map.put("start", startDate); 
     map.put("end", endDate); 

    } 

    String json = new Gson().toJson(map); 

    response.setContentType("application/json"); 
    response.setCharacterEncoding("UTF-8"); 

    return json; 
} 

答えて

0

で、「春は自動的に応答をJSON文字列にマップを変換し、あなたはドン入力変数としてHttpServletResponseを設定する必要があります。

@RequestMapping(value = "/calendar/getRoster", method = RequestMethod.GET, produces="application/json; charset=utf-8") 
public @ResponseBody String getRoster() { 
    ... 
    ... 
    return map; 
} 
+0

ありがとうございます!しかし、最後のループの内容だけを返します。どのように私はdutyListのすべてを返すのですか? – user2833581

+0

マップで使用するキーは同一なので、最後のループの結果を確実に返します。データオブジェクトをクラスとして作成し、各項目をdutyListに格納し、インスタンスをマップにプッシュしてからマップを返す必要があります。 – LHCHIN

関連する問題