javascript - 如何从 JSON 响应中读取数据

标签 javascript php json laravel laravel-5

我目前正在使用 Laravel 5。 在我的目标 Controller 中:

public function getGoalData()
{
    // my queries
    return view('userPages.usercp')->with('goal_data', $goal_data);
}

当我打印出$goal_data时通过<?php echo $goal_data ?> ,它是一个 json 字符串。 现在我想通过使用Javascript来进一步处理来阅读它。我怎样才能做到这一点? 谢谢。

编辑

我想读 @goal_data在外部脚本中。这是 Julian Paolo Dayag 的解决方案和VMcreator

  • 在 HTML 文件中,将其放在末尾(</body> 标记之前):

<script> window.GOALS = <?echo json_encode($goal_data); ?> </script>

根据朱利安·保罗·达亚格 (Julian Paolo Dayag) 的说法:

by storing a variable into the window object, means it will become a global variable.

  • 现在在你的 JS 文件中,你可以这样调用它:var goalData = JSON.parse(GOALS);

最佳答案

您可以使用 JSON.parse("json string here");

示例:

单个对象

    var person = JSON.parse("{name: 'hello world', age: 18}");

    console.log(person.name); // outputs "hello world"
    console.log(person.age);  // outputs 18

对象数组

    var person = JSON.parse("[{name: 'hello world', age: 18},{name: 'foo bar', age: 10}]");

    console.log(person[0].name); // outputs "hello world"
    console.log(person[0].age);  // outputs 18
    console.log(person[1].name); // outputs "foo bar"
    console.log(person[1].age);  // outputs 10

有时您的 JSON 字符串有错误,导致 JSON.parse() 在解析失败时抛出异常。

建议将 JSON.parse() 包裹在 try/catch block 周围,这样 JavaScript 就不会停止脚本的执行。

    try {
        var person = JSON.parse("[{name: 'hello world', age: 18},{name: 'foo bar', age: 10}]");

        console.log(person[0].name); // outputs "hello world"
        console.log(person[0].age);  // outputs 18
        console.log(person[1].name); // outputs "foo bar"
        console.log(person[1].age);  // outputs 10
    } catch(e) {
        console.log("JSON parse failure!");
    }

关于javascript - 如何从 JSON 响应中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001828/

相关文章:

javascript - Highcharts 仪表在通过 json 获取数据之前渲染

javascript - 提交功能不起作用?

我的 Spring MVC 3.2 应用程序中的 JSON 映射仅适用于我的一种方法

php - 抑制用户可见的 PHP 错误消息,但不抑制错误日志消息

javascript - 将对象/数组转换为 JSON?

php - JSON 数据解析器不允许单引号

javascript - 如何裁剪 IFrame 的内容(从 IFrame 容器,不使用滚动)

javascript - getComputedStyle local vs 每次函数性能

javascript - 使用 Jquery 和 ajax 更新 HTML 表

PHP 命令行界面 : Possible to set a $_SERVER Variable that's an Array?