1

動的な JSON 文字列を REST Web サービスに渡そうとしています。これは、mysql db に入力するために使用されます。ハードコーディングされた JSON 文字列を使用してこれを行うことができますが、動的な JSON 文字列を渡す方法がわかりません。

WebService 経由で渡されたパラメーターを取得し、それを JSON として解析し、それをデータベースに永続化するにはどうすればよいですか?

私はこのトピックに非常に慣れていないので、洞察をいただければ幸いです。ハードコーディングされた JSON 文字列を解析して mysql db に追加するためのコードを添付しています。

私の StackService.java

import java.util.Date;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.apache.log4j.Logger;
import org.hibernate.Session;

import com.google.gson.Gson;
import com.tracker.domain.Flow;
import com.tracker.persistence.HibernateUtil;
@Path("")
public class StackService {

    private Logger LOG = Logger.getLogger(StackService.class);



    /**
     * curl -X GET http://localhost:8080/stack
     */
    @GET
    @Path("")
    @Produces(MediaType.APPLICATION_JSON)
    public void getStock() {

        String stackJsonString = "{\"stack_name\":\"GOOG\",\"id\":null\"}";
        Gson gson = new Gson();
        Stack stock = gson.fromJson(stockJsonString, stock.class);
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();

        String stockName = stock.getstock_name();
        stock.setstock_name(stockName);

        session.beginTransaction();
        session.save(stock);
        session.getTransaction().commit();


    }
}
4

1 に答える 1

0

jsonパラメーターを渡すことが問題である場合は、パスパラメーターを使用してみることができます。

 @GET
    @Path("{jsonString}")
    @Produces(MediaType.APPLICATION_JSON)
    public void getStock(@PathParam("jsonString") String jsonString) {

        String stackJsonString = jsonString;

しかし、私はそれを簡単にするpostメソッドを使用することをお勧めしますが、uがpostを使用することを決定する前に、それがべき等演算であるかどうかを検討する必要があります。

于 2012-12-26T04:46:04.110 に答える