将 Jackjson JSON 对象从 JSP 传递到 JavaScript 函数
Passing Jackjson JSON object from JSP to JavaScript function
我有一个存储在数据库中的JSON字符串。在我的一个JSP页面中,我检索了这个字符串,我希望能够将字符串或JSON对象传递给Javascript函数。该函数仅用于测试目的
function test(h){
alert(h);
}
现在我可以很好地从数据库中检索 JSON 字符串,我已经将其打印到屏幕上以确保它正在获取它,但是当我像这样传递它时
<input type="button"
name="setFontButton"
value="Set"
class="form_btn_primary"
onclick="test('<%=theJSON%>'); return false;"/>
什么也没发生。我用萤火虫检查出了什么问题,它说有无效字符。
所以我然后尝试像这样传入 JSON 对象
Widget widg = mapper.readValue(testing.get(0), Widget.class);
然后传入
onclick="test('<%=widg%>'); return false;"/>
现在这将毫无错误地传入,并提醒对象名称,但是我无法解析它。对象就像小部件类存储位置的包名称一样出现,如下所示
com.package.mode.Widget@ba8af9
我尝试使用Stringify,但这似乎不适用于这个Jackson JSON对象。
在所有这些失败之后,我尝试了最后的手段,从数据库中获取字符串,并将其编码为 base64。但是,如果我这样做,这也失败了
String test = Base64.encode(theString);
并把它传递进去。但是,如果我这样做,请将其打印到屏幕上,然后复制打印出来的内容,并通过它发送,所以不太明白为什么会这样。
所以有人可以告诉我我做错了什么。我已经尝试了很多不同的解决方案,但没有任何效果。
JSON 字符串像这样存储在数据库中
{ "id":1, "拆分":[ { "文本":[ { "值":"测试", "位置X":3, "位置Y":-153, "字体":{ "类型":"正常", "大小":"中", "粗体":假, "颜色":"5a5a5a", "斜体":假 } } ] } ] }
如果有人能指出我直接的方向,将不胜感激!
编辑:
如果其他人有同样的问题,请这样做将JSON从JSP传递到JS函数
<%=theJSON.replaceAll("'"", "''''")%>
这允许您传入 JSON,
然后将其以JavaScript格式恢复为正常的JSON格式
theJSON = theJSON.replace(/'/g,'"');
应该工作正常
我认为包装 onclick 的双引号和 JSON 中的引号的组合可能会让您感到困惑。把它想象成你手动输入了JSON——它看起来像这样:
onclick="test('{ "id":1, "splits":[ { "texts":[ { "value":"Test", "locationX":3, "locationY":-153, "font":{ "type":"Normal", "size":"Medium", "bold":false, "colour":"5a5a5a", "italics":false } } ] } ] }'); return false;"
id
之前的开始双引号实际上是onclick=
后面的双引号结束(您应该能够通过查看页面源代码来验证这一点)。尝试将点击时间指定为:
onclick='test(''<%=theJSON%>''); return false;'
按照以下步骤操作
- 获取 jon 字符串
- 使用 jackson 或任何其他 JSON jar 文件,将 json 字符串转换为 json 数组并使用 out.println 打印字符串。
- 调用这个打印 json 字符串的 jsp
- 检查火虫,您将能够看到您的 JSON 。
- 如果 Json 字符串不打印,则 json 格式可能存在一些问题。
这是一个很好的json美化网站,http://jsbeautifier.org/,真的让字符串变得简单易读。
谢谢阿比
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别