【问题标题】:Dynamic JSON passing to REST Web service and using it to insert data into mysql db动态 JSON 传递给 REST Web 服务并使用它将数据插入 mysql db
【发布时间】:2012-12-11 15:13:53
【问题描述】:

我正在尝试将动态 JSON 字符串传递给我的 REST 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();


    }
}

【问题讨论】:

  • 如果您需要帮助,您应该使用更有针对性的代码示例提出更具体的问题。例如,尽量自己解决问题。当你达到极限时,问一个特定的问题来帮助你向前迈出一步(包括你得到的错误消息/输出和有问题的部分的代码。

标签: java mysql json hibernate


【解决方案1】:

如果传递 json 参数是您的问题,那么您可以尝试使用路径参数。

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

        String stackJsonString = jsonString;

但我建议您使用 post 方法,这会使其变得简单,但您应该在决定使用 post 之前考虑它是否是幂等操作。

【讨论】:

  • 非常感谢您提供的信息。我知道如何解析硬编码的 JSON 字符串。但是,我不知道如何使用 curl 命令(POST)传递 JSON 并使用该 JSON 填充数据库。例如crul -X POST -H'Content-Type:application/json'-d{"stockName":"GOOG"}localhost:8080/stock.目前,我正在使用 hrd 编码的 JSON 字符串填充数据库,如我原来的问题中所示。但是,我想在我刚写的时候传递 curl 命令。如果您有任何见解,那就太好了。非常感谢您的所有时间。
猜你喜欢
  • 2016-01-21
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 2018-09-01
相关资源
最近更新 更多