使用PHP创建JSON形式的数组并使用javascript对其进行解码

时间:2019-02-17 21:11:13

标签: javascript php json

如果我使用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;
    } 

1 个答案:

答案 0 :(得分:0)

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

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