Generuję połączony ciąg w Javascript:
var result = "";
for (i = 0; i < j.result.length; i++) {
// bunch of string formatting code here
result += stringAsWeGo;
}
Ten „wynikowy” ciąg jest obiektem tekstowym sformatowanym tak, aby wyglądał jak JSON ... Chcę zapisać ten ciąg jako plik .json na moim serwerze. Używam więc AJAX i PHP w ten sposób:
var obj = JSON.parse(result);
$.ajax({
url: "json.php",
data: obj,
dataType: "json",
type: "POST"
});
Gdzie mój plik json.php wygląda tak:
<?php
$json = $_POST["json"];
$file = fopen("jsonfile.json", "w+");
fwrite($file, $json);
fclose($file);
?>
Ale nic nie zapisuje na serwerze. Istniejący pusty plik jsonfile.json jest pusty i nie zawiera w nim json.
Odpowiedzi:
1 dla odpowiedzi № 1Wygląda na to, że nie masz nazwy json
więc spróbuj
//var obj = JSON.parse(result);
$.ajax({
url: "json.php",
data: {
json: result
},
dataType: "json",
type: "POST"
});
Uwaga: Nie twórz obiektu json przy użyciu konkatenacji łańcuchów. Możesz utworzyć obiekt, a następnie użyć JSON.stringify()
aby wysłać wartość do serwera jako wartość param.
var obj = {};
//do some processing here which adds some properties to obj like
obj.name = "x";
obj.id = 4
$.ajax({
url: "json.php",
data: {
json: JSON.stringify(obj)
},
dataType: "json",
type: "POST"
});