解析 HttpServletRequest 包含 jsonp 字符串

Posted

技术标签:

【中文标题】解析 HttpServletRequest 包含 jsonp 字符串【英文标题】:Parse HttpServletRequest contains jsonp string 【发布时间】: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 字符串并发送给浏览器”..写出来仅供参考.. 我认为这个链接会对你有所帮助。 ***.com/questions/5245840/…***.com/questions/1395551/… 【参考方案1】:

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

live example

flexjson library

【讨论】:

以上是关于解析 HttpServletRequest 包含 jsonp 字符串的主要内容,如果未能解决你的问题,请参考以下文章

ServletException、HttpServletResponse 和 HttpServletRequest 无法解析为类型 [重复]

eclipse下遇到 无法解析类型 javax.servlet.http.HttpServletRequest

Servlet中的HttpServletRequest接口

阿昌教你自定义拦截器&自定义参数解析器&自定义包装HttpServletRequest

阿昌教你自定义拦截器&自定义参数解析器&自定义包装HttpServletRequest

p132代码解析