【问题标题】:How to read JSON object in angular JS如何在 Angular JS 中读取 JSON 对象
【发布时间】:2016-11-25 22:30:27
【问题描述】:

我的项目使用的是旧技术,它使用 JSP/servlets,我们要将它迁移到 Spring Boot,作为其中的一部分,我们正在将一些页面迁移到 Angular js 实现。 在特定页面中,有一个来自 servlet 的 JSON 对象将传入 JSP,servlet 代码类似于

JSONObject vReportDetails = new JSONObject();
inRequest.setAttribute("REPORT_DATA", vReportDetails);

我想在 Angular js 控制器中读取这些数据,现在他们正在使用

<% JSONObject jObj = (JSONObject) request.getAttribute("REPORT_DATA"); %>

并读取 JSON 数据

请帮助我用 Angular js 读取这些数据

提前致谢

【问题讨论】:

    标签: javascript angularjs json jsp servlets


    【解决方案1】:

    更新 所以 JSP 已经在加载嵌入了数据的 HTML 页面。 Angular 只是一个客户端框架,因此它可以执行 HTTP-GET,但您可能不希望将数据作为公共端点。我能想到的最好方法是通过 DOM

    $scope.angularVariable = document.getElementById("WhereTheJsonIs");
    

    请注意,我不确定 json 是如何加载到 DOM 中的,但主要思想是 JSON 已经加载到页面上,并且使用 JavaScript,您可以从 DOM 获取该数据并将其设置为 Angular 变量.


    所以 JSON 代表 JavaScript Object Notation,您所问的不是“Angular”问题,而是 JavaScript 问题。 Angular 只是一个可以让你做更多事情的框架。

    所以我可以将变量设置为 JSON 对象,例如

    var theJSON = { "firstKey" : "value" };
    

    并且由于 Angular 只是 JavaScript,您可以这样做,(假设您使用的是 Angular v1 而不是 v2)您可能正在使用 $scope 作为设置变量的方式,这很好,相同的规则适用于普通JavaScript 变量

    $scope.theJSON = { "firstKey" : "value" };
    

    商店的寓意

    其他语言有处理 JSON 的类,因为它对于 Java、C++ 等语言来说并不自然,但由于您使用的是 JavaScript,因此您可以将 JSON 用作 JSON,因为它是为 JavaScript 使用的,请记住 Angular 是只是下面的 JavaScript。


    如果您使用的是 HTTP 请求,则响应已经在 J​​SON 中,因此您可以设置一个变量

    var theJSON; 
    $http.get('/myEndPoint').then(function(response) {
         theJSON = response;
    });
    

    【讨论】:

    • 我的主要疑问是在 /myEndPoint 中提到什么??
    • 这是一个服务器问题... Angular 只是前端。它将加载页面,仅此而已。这个想法是如果这个 JSON 在你需要请求它的服务器上......你在哪里寻找这个 JSON 数据?
    • 它来自将调用 JSP 的 servlet.... 现在在 JSP 中它被读取为
    • 所以看这个我认为结合这两个想法存在一个结构性问题en.wikipedia.org/wiki/JavaServer_Pages#/media/… 这显示了旧的模型-视图-控制器布局angularjstutorials.net/img/angularJs_mvc_framwork.jpg 显示了 Angular 是如何做到的所以我正在尝试了解此 JSON 数据位于服务器端的某处,您可能需要在 servlet 中创建 /endPoint 以从 Angular 中获取它
    • 好的,所以我完全误解了 JSP 只是一个渲染引擎的部分......所以 JSP 已经创建了一个 HTML 页面并在页面加载时“嵌入”数据,Angular 将需要访问它通过 DOM,检查上面的编辑以回答
    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多