2016-11-15 2 views
-2

У меня есть JSon файл users.jsonкак сохранить данные в формате JSON с PHP

{ 
    "Jessica Smith": { 
     "name": "Jessica", 
     "surname": "Smith", 
     "email": "[email protected]", 
     "pass": "jessicasmith", 
     "sex": "female" 
    }, 
    "Jessica Smith2": { 
     "name": "Jessica", 
     "surname": "Smith2", 
     "email": "[email protected]", 
     "pass": "jessicasmith2", 
     "sex": "female" 
    }, 
} 

PHP код

$file = fopen("users.json", a); 
if(!$file) die ("Error"); 
$value =  "given_name:".$name."\nfamily_name:".$surname."\nemail:".$email."\npass:".$psw."\nsex: ".$type."\n"; 
fwrite($file, $value); 
fclose($file); 

С помощью этого кода я только добавить строку $value после последней строки, есть метод, в котором я могу преобразовать $value в json form ?? Я стараюсь использовать json_encode.

string json_encode(mixed $add[$value]); 

но не работает.

Например, я хочу добавить Джессика Smith3 в users.json

"Jessica Smith3": { 
    "name": "Jessica", 
    "surname": "Smith3", 
    "email": "[email protected]", 
    "pass": "jessicasmith3", 
    "sex": "female" 
    }, 
+2

Этот вопрос кажется очень смущенным. Не знаю, что вы на самом деле спрашиваете. –

+0

недействительный json. удалите '},' comma (last) – Karthi

+3

Вы не можете добавить отдельные json-кодированные строки в json-файл, так как это приведет к полному недопустимому json. Вместо этого вы должны прочитать json, проанализировать его, добавить значения в нужное место, закодировать его и сохранить. – jeroen

ответ

1

Ваш $ значение не является допустимым JSON и манипуляции файла выдает неверный файл в формате JSON. Вы должны использовать

$value = array( "given_name"=>$name, 
        "family_name"=>$surname, 
        "email"=>$email, 
        "pass"=>$psw, 
        "sex"=>type); 
$file = fopen("users.json", a); 
if(!$file) die ("Error"); 
$f = json_decode($file); 
$f[] = $value; 
$file = json_encode($f); 
fwrite($file, $value); 
fclose($file); 
Смежные вопросы