将InputStream转换为JSON [英] Convert InputStream into JSON
本文介绍了将InputStream转换为JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用json-rpc-1.0.jar.Below是我的代码。我需要将InputStream对象转换为JSON,因为响应是JSON。
I am using json-rpc-1.0.jar.Below is my code. I need to convert InputStream object into JSON since the response is in JSON.
我确实验证了从Zappos API获得的json响应。它是有效的。
I did verify the json response obtained from Zappos API. It is valid.
PrintWriter out = resp.getWriter();
String jsonString = null;
URL url = new URL("http://api.zappos.com/Search?term=boots&key=my_key");
InputStream inputStream = url.openConnection().getInputStream();
resp.setContentType("application/json");
JSONSerializer jsonSerializer = new JSONSerializer();
try {
jsonString = jsonSerializer.toJSON(inputStream);
} catch (MarshallException e) {
e.printStackTrace();
}
out.print(jsonString);
我得到以下提到的例外:
I get the below mentioned exception:
com.metaparadigm.jsonrpc.MarshallException: can't marshall sun.net.www.protocol.http.HttpURLConnection$HttpInputStream
at com.metaparadigm.jsonrpc.JSONSerializer.marshall(JSONSerializer.java:251)
at com.metaparadigm.jsonrpc.JSONSerializer.toJSON(JSONSerializer.java:259)
at Communicator.doGet(Communicator.java:33)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
推荐答案
使用Jackson JSON解析器。
Make use of Jackson JSON parser.
参考 - Jackson Home
你唯一需要做的事情 -
The only thing you need to do -
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> jsonMap = mapper.readValue(inputStream, Map.class);
现在 jsonMap
将包含JSON。
这篇关于将InputStream转换为JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文