JSON Добавление в файл проблемы. Появляется только объект - PullRequest
1 голос
/ 26 июля 2011

Итак, я пытаюсь опубликовать новый узел в файл JSON.

Вот мой JS:

        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]"]}

1 Ответ

0 голосов
/ 26 июля 2011

Похоже, у вашего $markerData есть дополнительные вложенные объекты, которые нужно явно прочитать и добавить в json явно. Вам необходимо настроить таргетинг на свойства этих объектов и добавить их одно за другим.

Если бы вы повторили $_POST['marker'], вы бы получили [object Object], но если вы напечатаете это так:

<code>echo "<pre>";
print_r($_POST['marker']);
echo "
";

Затем вы увидите все объекты и свойства маркеров и сможете добавить их по отдельности в свой json или по крайней мере ссылаться на них в цикле for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...