【问题标题】:anybody can correct this code?任何人都可以更正此代码吗?
【发布时间】:2014-05-04 18:01:41
【问题描述】:
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<ProductData> getAllProductList(@QueryParam("hotel_id") int hotel_id) throws SQLException{

    System.out.println("Hotel id id==="+hotel_id);

    ProductData productData=new ProductData();
    List<ProductData> products = new ArrayList<ProductData>();

    rs=stmt.executeQuery("select * from products where hotel_id="+hotel_id);

    while(rs.next()){
        productData.setProductName(rs.getString("name"));
        productData.setProductCategory(rs.getString("category"));
        productData.setProductRate(rs.getDouble("rate"));
        productData.setProductLogoPath(rs.getString("productLogoPath"));
        products.add(productData);
    }

    return products; 
}

我已将 List 作为 JsonObject 传递。现在我尝试获取 List 值,如

void handleResponse(String response) throws JSONException {

    JSONObject jsonObject=new JSONObject(response);
        JSONArray jsonArray = jsonObject.getJSONArray("products");

}

但我无法获取 List 值。anyBody 可以帮助我吗?

【问题讨论】:

  • 好吧,现在您需要将 JSON 对象解析回List&lt;ProductData&gt;。你的具体问题是什么?
  • @LuiggiMendoza 我不知道如何将 JSON 对象解析为 List。这是我的问题朋友
  • 但是在将问题发布到此处之前,您是否先尝试过一些事情?
  • @LuiggiMendoza 是的朋友。我已经尝试了 3 多个小时。但直到我没有得到。你能帮我吗?

标签: java json


【解决方案1】:

有一种简单的方法将json字符串转换为对象:

试试这个:

ObjectMapper mapper = new ObjectMapper();
POJO obj = mapper.readValue(yourJSONString, POJO.class);

【讨论】:

  • yourJSONString 表示我的响应字符串?
  • 绝对。这是如何解析回对象而不是 List. 的方式
  • 那我怎样才能得到 List?
  • 老兄自己试试吧。如果我什么都告诉你,那么你就什么都学不到了。加油,你可以的
【解决方案2】:

使用类似的方法签名 - 公共响应 getAllProduct.. & 像回来一样—— return Response.status(Status.OK).entity(products).build();

对于intg。层使用- public ClientResponse 类似SignatureMethod.. & 通过客户端调用,然后获取响应实体 - clientResponse.getEntity();

【讨论】:

  • 使用 - javax.ws.rs.core.Response.
  • 使用 ClientResponse 和 getEntity 获取完整的产品列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 2022-12-20
  • 2015-05-24
  • 1970-01-01
相关资源
最近更新 更多