Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将json对象从PHP转换为Javascript数组_Javascript_Php - Fatal编程技术网

如何将json对象从PHP转换为Javascript数组

如何将json对象从PHP转换为Javascript数组,javascript,php,Javascript,Php,背景信息 我需要将javascript数组“传递”给其他人编写的某个前端逻辑。在查看他们的代码时,我看到他们正在创建如下虚拟数据: <script> //define some sample data var tabledata = [ {id:1, name:"JohnDoe", company:"Acme", email:"jdoe@acme.com", title:"CEO", regtype:"12345"}, {id:2, name:"JaneDoe",

背景信息

我需要将javascript数组“传递”给其他人编写的某个前端逻辑。在查看他们的代码时,我看到他们正在创建如下虚拟数据:

<script>
//define some sample data
 var tabledata = [
    {id:1, name:"JohnDoe", company:"Acme", email:"jdoe@acme.com", title:"CEO", regtype:"12345"},
    {id:2, name:"JaneDoe", company:"Widgets Inc", email:"janedoe@hotmail.com", title:"Programmer", regtype:"12345"}    
 ];
{
    "items": [{
        "id": 2089025,
        "first_name": "Devon",
        "last_name": "Ackerman"
    }, {
        "id": 2163367,
        "first_name": "Ryan",
        "last_name": "Acuff"
    }]
}
问题

我不知道如何在PHP中转换/转换它,使其最终成为Javascript中的数组

代码

这是到目前为止我在PHP中使用的代码,a)证明我得到了一个字符串b)尝试将其转换为json对象

$json_obj = json_decode($response, true);
//echo json_last_error();
echo gettype($response);
echo gettype($json_obj);
第一个gettype()返回“string”。第二个返回“array”

几行之后,我完成了PHP部分,并执行以下操作:

<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var tabledata = <?php echo ($json_obj) ?>;
console.log(typeof(tabledata))
console.log(tabledata)
有人能给我指出正确的方向吗

谢谢。

var tabledata=;
var tabledata = <?php echo ($json_obj) ?>;
应该是

var tabledata = <?php echo json_encode($json_obj) ?>;
var tabledata=;
这将把它转换成json,当页面加载时,浏览器将为您自动解析它

在您的例子中,因为您已经开始使用编码值,所以可以直接使用它

var tabledata = <?php echo $response ?>;
var tabledata=;
或者我相信PHP有一个快捷方式,你也可以这样做

var tabledata = <?= $response ?>;
var tabledata=;

json\u decode
将json文本转换为PHP对象。假设您从数据库中得到的是一个关联数组,您需要对其调用
json\u encode
确定,只是$response中嵌入了一个“items”数组。所以我只想要项目中的东西。既然它们正在解码
$response
(JSON字符串),为什么不只是回显呢?它们也可以这样做。但是,如果将来有一个示例,说明他们正在处理的内容不是以已编码的值开始的,这将让他们知道如何执行该操作。
var tabledata=
是我要做的事情如何才能访问“items”部分?我试过$json_obj->items和$json_obj=>items,我想我找到了答案。我需要做json_编码($json_obj['items'))
var tabledata = <?= $response ?>;