在PHP中为JSON对象分配标识符/名称

zan*_*nah 4 javascript php jquery json

我正在从mysql数据库中获取数据并使用PHP编码JSON对象以在JS中使用.在PHP端,我做到了这一点

while($ row = mysql_fetch_array($ result))

{
     $jmarkers = array(
        'id'=> $row['id'],
                'lat' => $row['lat'],
                'lng' => $row['lng'],
         etc...            
    );
    array_push($json, $jmarkers);
}

$jsonstring = json_encode($json);
echo $jsonstring;
Run Code Online (Sandbox Code Playgroud)

我可以使用jQuery访问JS中的数据,并创建了一个数组来保存JSON数据:

$ .getJSON("getjson.php",函数(数据)

{
     myMarkers = data;
     console.log(myMarkers);
});
Run Code Online (Sandbox Code Playgroud)

我打算在内部循环中访问myMarkers数组中的数据,语句如下:

var tempLat = myMarkers.jmarkers [i] .lat;

问题是我的JSON对象不被称为jmarkers或其他任何东西,当我将它们打印到控制台时,它们具有这个通用名称"Object":

对象{id ="2",lat ="40.6512",lng =" - 73.9691",更多...},

所以我不确定如何在我的JS数组中指出它们.我看了PHP JSON编码功能,我看不到在哪里设置或更改对象名称.有什么建议?谢谢!

Mar*_*c B 5

这是可以预料的.JSON本质上是赋值操作的右侧:

var x = {'foo':'bar'};
        ^^^^^^^^^^^^^---- JSON
Run Code Online (Sandbox Code Playgroud)

x部分不包括在内,因为它只是对象的名称.如果您希望jmarkers包含文本,那么它必须是您要编码的数据结构的一部分:

$arr = array(
   'jmarkers' => array(...your data here...);
);
Run Code Online (Sandbox Code Playgroud)

但所有这一切都是为您的数据结构添加另一层,没有任何有用的理由.