簡體   English   中英

動態JSON傳遞到REST Web服務並使用它將數據插入mysql數據庫

[英]Dynamic JSON passing to REST Web service and using it to insert data into mysql db

我試圖將動態JSON字符串傳遞給我的REST Web服務,而該Web服務又將用於填充mysql數據庫。 我可以使用硬編碼的JSON字符串執行此操作,但是我不知道如何傳遞動態JSON字符串。

如何檢索通過WebService傳入的參數,將其解析為JSON,並將其持久化到數據庫中?

感謝您提供任何見解,因為我對這個主題還很陌生。 我將附加我用於硬編碼JSON字符串解析的代碼,並將其添加到mysql數據庫中。

我的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();


    }
}

如果傳遞json參數是您的問題,則可以嘗試使用path參數。

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

        String stackJsonString = jsonString;

但是我建議您使用post方法,這將使其變得簡單,但是在您決定使用post之前,您應該考慮它是否是冪等運算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM