为复杂对象生成JSON消息
问题描述:
我开始了一个具有web/mobile,android,ios的客户端的企业应用程序。所以我决定使用Jersey来获得RESTFull资源并使用Spring IO注入服务。但我被困在主要2个地方。为复杂对象生成JSON消息
1. To Use DI with Spring. -- If I use jersey 2.7, it can able to produce
json. Here I can not use Spring DI.
2. Produce response for complex objects.-- If I use Jerse-Spring 1.8,
My Objects not converting as json.
- 什么是产生像内具有收集和具有持久性等级/休眠注释复杂对象JSON消息的最佳方式。
- 什么是DI的最佳解决方案,是春季DI或EJB 3.0(我不是太了解EBJ 3.X的)
我的数据库设计已经结束,许多DAO的的测试,但要消耗我的服务我面临一个问题。我最近的帖子是:enter link description here
任何帮助真的很感激。
答
您可以使用带gson lib的HttpServlet来创建REST服务。请参见下面的简单的例子
package com.nl.services.ws.sincronizacao;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
@WebServlet(value = "/TestGsonHttp")
public class TestGsonHttp extends HttpServlet{
@EJB
private yourEjbClass;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// Your Entity
Client c = yourEjbClass.getClientById(1);
Gson g = new Gson();
String jsonResult = g.toJson(c);
PrintWriter writer = resp.getWriter();
writer.print(jsonResult);;
writer.flush();
writer.close();
}
}