好的,我建议您这样做。我搜索了Internet,并获得了Gson
,这使任务变得容易。我通过将结果打印到这样的控制台,然后返回预期的json
结果
public String printJson()
{
ProductBLL productBLL = new ProductBLL();
List<String> catList = productBLL.getProductCatagories();
Gson gson = new Gson();
String jsonCatList = gson.toJson(testList);
System.out.println("Category List: " + jsonCatList);
}
输出
Category List: ["Book","Music","Movies"]
但是,当我在Java Soap Web服务中尝试它时,它无法正常工作,这意味着Web服务仍在返回XML。
这是使用Gson
@WebMethod
public String getCategories()
{
List<String> catList = ppBll.getProductCatagories();
Gson gson = new Gson();
String jsonCatagoryList = gson.toJson(catList);
return jsonCatagoryList ;
}
输出
<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getCategoriesResponse xmlns:ns2="http://aman.org/">
<return>Book</return>
<return>Music</return>
<return>Movies</return>
</ns2:getCategoriesResponse>
</S:Body>
,但我需要它返回json
。应该在哪里修改以使其在Web服务中工作?
SOAP Web服务将始终返回XML,可能是您可以创建另一个REST Web服务,该服务将在内部调用SOAP WS并产生JSON。在您的休息下,您可以轻松地做到这一点。
所以步骤1:
创建一个产生JSON的REST WS
步骤2:
从此休息ws调用肥皂ws并将输出转换为您想要的格式。