繁体   English   中英

使用 PHP 创建 JSON 形成一个数组并使用 javascript 对其进行解码

[英]create JSON form an array with PHP and decode it with javascript

如果我用 php 解码一个数组,我会得到带括号的 JSON:

$data = array();
$data[0]["id"] = 23;
$data[0]["modul"] = "my modul";

echo '' .json_encode($data). '';

我得到一个这样的 JSON:

[{"id":23,"modul":"my modul"}]

当我想用 javascript 解码时,没有什么可解码的,因为 javascript 需要没有括号的 JSON

var myObj = JSON.parse(mySendJSONData);

在解析之前我已经尝试使用它:

myObj = myObj[0];

但它没有解决它。

更清楚:我想使用服务器端事件将 JSON 发送到客户端:

服务器:

<?php
header( 'Content-Type: text/event-stream' );
header( 'Cache-Control: no-cache' );

    $data = array();
    $data[0]["id"] = 23;
    $data[0]["modul"] = "my modul";

    echo 'data: ' .json_encode($data). "\n\n";
flush();
?>

客户:

  var source = new EventSource("myServerSideEvent.php");

    source.onmessage = (event) => {
        var myObj = JSON.parse(event.data);     
        document.getElementById("moduldialog").innerHTML = myObj.modul;
    } 

您正在发送 JSON 编码的数据,它应该是一个字符串。 但是您并没有将它描述为输出中的字符串。 尝试:

echo 'data: \'' .json_encode($data). "'\n\n";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM