【问题标题】:Display JSON Envelope on JSP在 JSP 上显示 JSON 信封
【发布时间】:2013-04-09 16:57:18
【问题描述】:

我有一个 Spring @Controller,它采用现有的 ArrayList 并创建一个 JSON 信封。当我在 Spring 控制台中显示 JSON 信封时,我看到我想要的数据在那里。当我在 Firefox 的 FireBug 中查看相同的 JSON 信封时,我也看到了我想要的数据。

我正在尝试使用 JavaScript 在 jsp 页面上显示信封,但我真的不知道如何开始。

在代码的其他模块中,有些区域是从数据库中获取信息,使用 YUI2 将其与 DataTable 一起显示。它还使用 JSON 信封,并且可以正常工作。我正在尝试复制它以在 JSP 页面上仅显示 JSON 文本字符串。我不知道我是否需要使用 YUI2,或者我是否可以使用 JavaScript 来访问 JSON Envelope。

我是 Java 和 JSON 以及 Spring 环境的新手,所以我什至不知道使用哪种 JavaScript 语法来访问 JSON 信封,更不用说显示它了。我一直在谷歌上寻找答案,但到目前为止大部分都在我的脑海中。

如果有任何帮助,我将不胜感激。谢谢。

【问题讨论】:

  • 问题似乎是你不知道如何在 JavaScript(jQuery 或其他 JS 库)端使用 JSON 字符串。从基础开始会很好。一些要学习的网站:JSON in JavaScriptHow to parse JSON in JavaScriptJSON Tutorial
  • 顺便说一下,最好先学习基础知识,然后再与一组像 YUI2 这样简化工作的库混在一起(请注意,这个建议几乎适用于所有技术,而不仅仅是对于 JSON)。
  • 感谢您提供的链接,我会去阅读。 :) 这个项目是别人建的,我没有受过训练就被推了进去,并试图学习。构建它的人使用了 YUI2,我也从未使用过,所以我也在学习。

标签: java javascript json


【解决方案1】:

你的问题很不清楚。

如果您只是想显示 JSON 的文本,那么您根本不需要使用 javascript。只需使用<c:out> 将 JSON 字符串输出到纯 HTML 页面的相关部分。

如果您想在客户端生成动态 HTML,您可以使用 Javascript。那时您可能希望 Javascript 使用 XMLHttpRequest 对象来调用服务器以请求 JSON。然后,Javascript 将负责动态地将 JSON 响应转换为可以显示的内容……您肯定需要客户端 JS 框架来帮助解决这个问题。

【讨论】:

  • 感谢您的回复。我在html中尝试了<c:out>,看看它是否有效,Spring给了我一个错误......Multiple annotations found at this line: - Missing required attribute "value" - No end tag (</c:out>).我很想更清楚,但有一半时间我真的不知道是什么我需要问的问题...
  • @Cynthia - 你真的,真的需要做一些关于你尝试使用的技术的基本教程。在这种情况下,JSP 和 JSTL。例如...docs.oracle.com/javaee/5/tutorial/doc/bnagx.html。如果您花时间阅读本教程,您至少会知道要问什么问题……以及该错误消息的含义。 (这意味着您使用了错误的语法。标签需要关闭标签,或者它们需要自关闭。并且您还没有告诉 JSP what 您要使用标签输出.)
【解决方案2】:

要解析检索到的 JSON,您可以使用 jQuery 的 $each 方法

var obj = {
 "Name": "Robert",
 "Counrty": "USA",
 "Address" : {"Apartment":"111","City":"Atlanta","State":"GA","Zip":"30005" }
 };

$.each( obj, function( key, value ) {
 alert( key + ": " + value );

if(typeof(value)=="object")
{
    $.each( value, function( key, value ) {
          alert( key + ": " + value );
        });
 }
});

如果您有更复杂的 JSON,那么您必须为每个复杂类型重复 $each,就像我为 Address 所做的那样。

然后就可以使用 Key 值从 JSON 对象中获取数据了。

工作example

【讨论】:

  • 谢谢,我们没有使用 JQuery ......但我会看看你的例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
相关资源
最近更新 更多