如何使用json_encode从php获取数据到javascript?

11 javascript php csv json

我正在尝试将traceroutes映射到谷歌地图.

我在php中有一个带有traceroute数据的数组

$c=ip,latitude,longitude, 2nd ip, its latitude, longitude, ....target ip, its lat, its lng
Run Code Online (Sandbox Code Playgroud)

我使用json_encode($c, JSON_FORCE_OBJECT)并保存了文件

现在,我如何使用javascript访问它,直接将它等同于新的JS对象?

早些时候我曾经在硬盘上有这样的数据格式

var data12 = {

"route":[
{
    "ip": "some ip",

    "longitude": "some lng",

    "latitude": "some lat",

.....
Run Code Online (Sandbox Code Playgroud)

并在我的JavaScript中它被用作

data=data12.route;
Run Code Online (Sandbox Code Playgroud)

然后简单地将成员作为数据[1] .latitude进行访问

Sam*_* S. 25

我建议使用jQuery库.缩小版本的大小仅为31 kB,并提供许多有用的功能.

要解析JSON,只需执行

var obj = jQuery.parseJSON ( ' {"name" : "John"} ' );
Run Code Online (Sandbox Code Playgroud)

您现在可以轻松访问所有内容:

alert ( obj.name );
Run Code Online (Sandbox Code Playgroud)

注意:jQuery使用浏览器的本机JSON解析器 - 如果可用 - 这比使用该eval ()方法更快,更安全.

编辑:要从服务器端向客户端获取数据,有两种可能:

1.)使用AJAX请求(使用jQuery非常简单):

   $.ajax ( {
       url: "yourscript.php",
       dataType: "json",
       success: function ( data, textStatus, jqXHR ) {
           // process the data, you only need the "data" argument
           // jQuery will automatically parse the JSON for you!
       }
   } );
Run Code Online (Sandbox Code Playgroud)

2.)在页面生成时将JSON对象写入Javascript源代码:

   <?php
       $json = json_encode ( $your_array, JSON_FORCE_OBJECT );
   ?>

   <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

   <script type="text/javascript">
   //<![CDATA[

   var json_obj = jQuery.parseJSON ( ' + <?php echo $json; ?> + ' );

   //]]>
   </script>
Run Code Online (Sandbox Code Playgroud)


小智 8

我知道这已经很旧了,但我最近发现自己在寻找这个。这里的答案都不适合我的情况,因为我的价值观中有引号。这里的想法是在回显到页面之前对数组进行 Base64 编码。这样引号就不会冲突。

< ?php
$names = ['first' => "some'name"];
?>
var names = JSON.parse(atob('< ?php echo base64_encode(json_encode($names)); ?>'));
console.log(names['first']);
Run Code Online (Sandbox Code Playgroud)