【问题标题】:Target inline JSON using jQuery .getJSON or similar method使用 jQuery .getJSON 或类似方法定位内联 JSON
【发布时间】:2015-09-25 20:20:06
【问题描述】:

我正在尝试使用 jQuery 的 .getJSON 方法从包装在 <script> 标记中的内联数组中获取数据。就我在文档 (http://api.jquery.com/jquery.getjson/) 中阅读的内容而言,.getJSON 需要一个 URL 和外部文件才能调用。

$.getJSON('items.js', function(data) {});

我将如何使用这种方法或另一种方法专门针对内联数组(没有外部文件),例如下面的:

  <script type="application/json">   
   {
    "items": {
        "blue": {
          "a": "a",
          "b": "b",
          "c": "c"
        }
     }
   }
  </script>

谢谢!

【问题讨论】:

  • 你能改变脚本标签的内容吗? var myJson = ...;?
  • 为什么要以这种方式存储 JSON?既然它是硬编码的,为什么不在你的脚本中硬编码它:var myVar={"items":...
  • 它不是硬编码的。我正在使用echo json_encode($Array, JSON_PRETTY_PRINT) 编写它
  • 用 var xyz= 包装 PHP echo'd 数组似乎不太干净。如果没有这个选项,我会这样做,虽然

标签: jquery arrays json getjson associative


【解决方案1】:

您不能将 JSON 本身放在脚本标记中,它必须是有效的 Javascript 语句。将 JSON 分配给变量名:

<script>
var data = {
    "items": {
        "blue": {
          "a": "a",
          "b": "b",
          "c": "c"
        }
     }
};
<script>

然后您的其余代码可以使用data 来访问该值。

【讨论】:

    【解决方案2】:

    最好将此数据存储到 JavaScript 对象中。

    做这样的事情:

    <script type="text/javascript">
        var jsonData = <?php echo json_encode($dataArray, JSON_HEX_TAG);?>;
    </script>
    

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 1970-01-01
      • 2011-02-05
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多