首页 > 解决方案 > 我如何在 php 中创建一个 java 对象并在 javascript 中使用它

问题描述

我需要在 php 页面上创建一个对象,并通过 ajax 调用将其作为响应发送,以便在响应页面中作为 javascript 对象使用。

这种对象我需要创建一个通道。

var areaChartData = {
            labels  : ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
            datasets: [
              {
                label               : 'Electronics',
                fillColor           : 'rgba(210, 214, 222, 1)',
                strokeColor         : 'rgba(210, 214, 222, 1)',
                pointColor          : 'rgba(210, 214, 222, 1)',
                pointStrokeColor    : '#c1c7d1',
                pointHighlightFill  : '#fff',
                pointHighlightStroke: 'rgba(220,220,220,1)',
                data                : [65, 59, 80, 81, 56, 55, 40]
              },
              {
                label               : 'Digital Goods',
                fillColor           : 'rgba(60,141,188,0.9)',
                strokeColor         : 'rgba(60,141,188,0.8)',
                pointColor          : '#3b8bba',
                pointStrokeColor    : 'rgba(60,141,188,1)',
                pointHighlightFill  : '#fff',
                pointHighlightStroke: 'rgba(60,141,188,1)',
                data                : [28, 48, 40, 19, 86, 27, 90]
              }
            ]
          }

我该怎么做?可能吗?

标签: javascriptphpajax

解决方案


执行此操作的三个步骤:

  1. 将对象创建为 PHP关联数组,其中包含关联数组和普通数组的混合。

  2. 通过 .将其作为 JSON 发送到浏览器json_encode

  3. 在浏览器上,解析来自 JSON 的响应(作为接收它的一部分fetch——API 会为你解析 JSON,axios 也会——或者通过手动解析响应的文本JSON.parse)。

例如:

<?php
$example = array(
    "x" => [1, 2, 3],
    "y" => ["a", "b", "c"],
    "z" => array(
        "nested" => 42,
        "stuff" => [4, 5, 6]
    ),
);
echo json_encode($example);

这将输出此 JSON(添加格式):

{
    "x": [1, 2, 3],
    "y": ["a", "b", "c"],
    "z": {
        "nested": 42,
        "stuff": [4, 5, 6]
    }
}

...可以解析为 JavaScript 对象树:

const json = `{
    "x": [1, 2, 3],
    "y": ["a", "b", "c"],
    "z": {
        "nested": 42,
        "stuff": [4, 5, 6]
    }
}`;
const obj = JSON.parse(json);
console.log(obj.x[0]); // 1
console.log(obj);


推荐阅读