gpt4 book ai didi

Java/Javascript/JSON - 将 JSON 字符串从 Java 传递到 Javascript

转载 作者:行者123 更新时间:2023-11-29 07:12:41 24 4
gpt4 key购买 nike

我将我在 Java 中创建的 JSON 字符串作为参数传递给从我的 servlet 调用的 Javascript 方法。但是,当我传递 JSON 字符串时,Firebug 会警告我正在传递的字符串:

Java代码:

String jsonString = "{\"id\":1,\"name\":\"Joe Smith\",\"data\":{\"email\":\"smith@gmail.com\",\"phone\":\"555-123-4567\",\"title\":\"CFO\",\"instanceControllerTagLibraryApi\":{\"developmentMode\":false}},\"children\":[],\"instanceControllerTagLibraryApi\":{\"developmentMode\":false}}";

pw.println("<body onload=\"init('"+jsonString+"');\">");

Javascript:

function init(text){
alert(text);
}

我试过在传递过程中引用字符串并删除单引号。两者基本上都指向一个事实,即传递的字符串需要(以某种方式)转义大括号。

错误(单引号):

SyntaxError: unterminated string literal [Break On This Error]

init('{

最佳答案

错误不在 JSON 字符串中,而是在其他代码中。

pw.println("<body onload=\"init('"+jsonString+"');\">");添加 onload 事件确实是粗略的尝试。

不要尝试将 JSON 字符串添加到 HTML 字符串中,它不会因为引号而起作用,除非你双重转义 JSON 字符串,这很愚蠢。

目前你的输出看起来像:

<body onload="init('{"id":1, ... }');">
^--- syntax error after this

它将尝试执行 JS 代码 init('{ .

关于Java/Javascript/JSON - 将 JSON 字符串从 Java 传递到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com