【问题标题】:Parse HttpServletRequest contains jsonp string解析 HttpServletRequest 包含 jsonp 字符串
【发布时间】:2012-11-09 09:52:33
【问题描述】:

当我尝试发送跨域 jsonp 请求时:

$.getJSON(url + "?callback=?",
    value : 'John',
    record : {
        value : 'a',
        list : [ 1, 2 ]
    });

然后我尝试像这样使用 java servlet 获取它:

public class TestServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, 
                         HttpServletResponse response)
               throws ServletException, IOException {

        String output = request.getParameter("callback") 
                            + "({\"response\":\"test\"});";

        response.setContentType("application/javascript;charset=utf-8");

        PrintWriter out = response.getWriter();
        out.println(output);
    }
}

内部servlet请求字符串有参数名称:

_=1353482336546
value=John
record[value]=a

如何将请求字符串解析为原始 JSON?

我正在使用嵌入式码头服务器,我想在 JSON 字符串上使用“JSON to Object”码头解析器

【问题讨论】:

  • 你想把 json 解析成对象吗?试试 google gson code.google.com/p/google-gson
  • 但是我可以在没有 gson 依赖的情况下实现它吗?有没有办法将查询字符串转换为原始 JSON?
  • 查询字符串到原始 JSON 意味着..我知道..“来自浏览器的请求被转换为服务器上的 java 对象,服务器上的响应 java 对象被转换为 json 字符串并发送给浏览器”..写出来仅供参考..

标签: java parsing servlets jetty jsonp


【解决方案1】:

您可以应用 flexjson 将 json 字符串解析为对象。请看:

live example

flexjson library

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2015-09-09
    • 2020-03-17
    相关资源
    最近更新 更多