Jquery JSON添加到文件问题。仅显示对象对象
因此,我尝试将一个新节点发布到json文件中 这是我的js:Jquery JSON添加到文件问题。仅显示对象对象,jquery,ajax,json,google-maps,object,Jquery,Ajax,Json,Google Maps,Object,因此,我尝试将一个新节点发布到json文件中 这是我的js: var newDate = new Date; var markerId = newDate.getTime(); var markerData = { 'id': markerId, 'lat':markerId, 'long':markerId }; $.ajax({ type: 'POST',
var newDate = new Date;
var markerId = newDate.getTime();
var markerData = { 'id': markerId, 'lat':markerId, 'long':markerId };
$.ajax({
type: 'POST',
url: "dataPath.php",
data: {
marker: markerData
},
dataType: 'json',
async: false,
success: function(result)
{
alert("Added OK");
}
});
这是php文件
$dataPath = 'file_path';
$markerDataFile = 'adauga.json';
$markerText = file_get_contents($markerDataFile);
$markerList = json_decode($markerText,true);
if( !empty($_POST['marker']) ){
$markerData = $_POST['marker'];
$markerData['ip'] = $_SERVER['REMOTE_ADDR'];
$markerData['created'] = time();
$markerList['markers'][] = $markerData;
$markerText = json_encode($markerList);
file_put_contents($markerDataFile, $markerText);
echo json_encode($markerData);
}else{
echo "Invalid request";
问题在于JSON文件显示以下内容:
{"markers":[{"id":"1310499027672","lat":"47.1405","long":"7.243839999999977","ip":"127.0.0.1","created":1310499032},"1object Object]","1object Object]","1object Object]","1object Object]","1object Object]","1object Object]","1object Object]","1object Object]"]}
您的
$markerData
似乎有额外的嵌套对象,需要显式读取并显式添加到json中。您需要以这些对象的属性为目标并逐个添加它们
如果您要回显$\u POST['marker']
,您将得到[object object]
,但如果您这样打印:
echo "<pre>";
print_r($_POST['marker']);
echo "</pre>";
echo”“;
打印($_POST['marker']);
回声“;
然后,您将看到所有的标记对象和属性,您可以将它们单独添加到json中,或者至少在for循环中引用它们。您发布的代码适合我。如果完全能够处理对象和嵌套数组,则错误可能在其他地方。
json\u encode()
。如果在JavaScript中将对象强制转换为字符串,则只能获得[object object]
。