LinkData data = (LinkData)manager.getObjectById(LinkData.class,Long.parseLong(param1));こんな具合になっています。for(MsgData msg:msgdatas)というように繰り返しを使い、data.getMsgDatasされたList内からMsgDataを取り出し、その内容を配列にまとめて書き出しています。これで、LinkDataの中に、関連するMsgDataを配列としてまとめたJSONデータができあがります。
List<MsgData> msgdatas = data.getMsgDatas();
res = "[";
res += "{id:" + data.getId() + ",url:'" + data.getUrl() + "',title:'" +
data.getTitle() + "',date:'" + data.getDatetime() +
"',comment:'" + data.getComment() + "',messages:[";
for(MsgData msg:msgdatas){
res += "{id:" + msg.getId() + ",comment:'" + msg.getComment() + "'},";
}
res += "]}]";
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
package jp.tuyano; import java.io.*; import java.util.*; import javax.jdo.*; import javax.servlet.http.*; @SuppressWarnings("serial") public class MygaeServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { PersistenceManagerFactory factory = PMF.get(); PersistenceManager manager = factory.getPersistenceManager(); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html"); req.setCharacterEncoding("utf-8"); String param1 = req.getParameter("id"); PrintWriter out = resp.getWriter(); List<LinkData> list = null; String res = null; if (param1 == null || param1 ==""){ String query = "select from " + LinkData.class.getName(); try { list = (List<LinkData>)manager.newQuery(query).execute(); } catch(JDOObjectNotFoundException e){} res = "["; for(LinkData data:list){ res += "{id:" + data.getId() + ",url:'" + data.getUrl() + "',title:'" + data.getTitle() + "',date:'" + data.getDatetime() + "',comment:'" + data.getComment() + "'},"; } res += "]"; } else { try { LinkData data = (LinkData)manager.getObjectById(LinkData.class,Long.parseLong(param1)); List<MsgData> msgdatas = data.getMsgDatas(); res = "["; res += "{id:" + data.getId() + ",url:'" + data.getUrl() + "',title:'" + data.getTitle() + "',date:'" + data.getDatetime() + "',comment:'" + data.getComment() + "',messages:["; for(MsgData msg:msgdatas){ res += "{id:" + msg.getId() + ",comment:'" + msg.getComment() + "'},"; } res += "]}]"; } catch(JDOObjectNotFoundException e){} } out.println(res); manager.close(); } }
<< 前へ |