在PHP中为JSON对象分配标识符/名称
Assigning identifier/name to JSON object in PHP
我正在从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;
我可以使用jQuery访问JS中的数据,我制作了一个数组来保存JSON数据:
$.getJSON("getJSON.php",函数(数据)
{
myMarkers = data;
console.log(myMarkers);
});
我计划在循环内部访问myMarkers数组中的数据,并使用如下语句:
var tempLat=myMarkers.jmarkers[i].lat;
问题是我的JSON对象不被称为jmarkers或其他任何东西,当我将它们打印到控制台时,它们有一个通用名称"Object":
对象{id="2",lat="40.6512",lng="-73.9691",更多…},
所以我不知道如何在JS数组中指向它们。我查看了PHP JSON编码函数,但看不到在哪里设置或更改对象名称。有什么建议吗?非常感谢。
这是意料之中的事。JSON本质上是赋值操作的右手边:
var x = {'foo':'bar'};
^^^^^^^^^^^^^---- JSON
x
部分不包括在内,因为它只是对象的名称。如果你想包含jmarkers
文本,它必须是你要编码的数据结构的一部分:
$arr = array(
'jmarkers' => array(...your data here...);
);
但所有这些都是在没有任何有用理由的情况下为数据结构添加另一层。
$jmarkers
只是JSON对象的PHP端的标识符。当它被传递时,它将数组值转换为JSON编码的字符串,因此会丢失标识符。
目前,在您的PHP代码中,array_push($json, $jmarkers)
正在将一个数组附加到当前的$json
数组中。因此,您正在实例化一个二维数组,Javascript代码中的jmarkers标识符将无法检索该数组。只需使用myMarkers[i]
检索数据即可。
您。。。不要。整个东西是一个对象。您只需要引用中的元素。
alert(myMarkers.id);
- 名称输入的索引
- jquery试图按名称获取按钮位置
- 从城市名称获取惊喜
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- JavaScript名称空间和对象创建
- Javascript未捕获语法错误意外的标识符错误
- Datatables:通过DOM数据源中的名称引用列
- 如何使用backbone.js从集合中获取模型名称
- 选中多个具有相同名称的复选框
- 节点fs.stat名称未定义
- 仅在IE中,javascript中的时区名称不正确
- 加载两个具有相同父密钥名称的json文件
- 使用变量值作为'名称标识符'javascript/html
- JavaScript 和 NPAPI 使用相同的方法名称,但在 Android 浏览器上获得不同的标识符
- 在PHP中为JSON对象分配标识符/名称
- 生成动态 HTML,使用 JavaScript 更改名称值.错误:- 意外的字符串或标识符
- 为什么 PHP 只使用“名称”标识符而不是“id”来解析 DOM 元素
- 错误名称'标识符'在当前上下文中不存在
- 如何在标识符名称和字符串变量中放置变量