2016-05-13 2 views
0

Lassen Sie uns eine file.json mit einem JSON, z.Lesen und Schreiben von JSON-Datei ohne Änderung der Formatierung in PHP

{ 
    "first-key": "foo", 
    "second-key": "bar" 
} 

Jetzt, wenn ich den JSON mit PHP integrierten Funktionen kodiere und decodiere, ändert es die Formatierung. Gibt es eine Möglichkeit, dies zu tun, ohne den JSON neu zu formatieren?

Ich muss einen einzigen Schlüssel hinzufügen und die Datei wird in Git Commit. Daher möchte ich vermeiden, Linien zu ändern, die sich nicht wirklich verändert haben.

+0

'Ohne variert werden Formatting' Means ?? –

+0

Ohne den Einzug, die Zeilenenden usw. zu ändern –

Antwort

0
<?php 

$json = '{ 
    "first-key": "foo", 
    "second-key": "bar" 
}'; 

$arr = json_decode($json, true); 

echo "<pre>"; 
print_r($arr); 
echo "</pre>"; 

$arr_new = array("newKey"=>$arr); 

$json_new = json_encode($arr_new); 

echo $json_new; 

?> 
1

Das JSON_PRETTY_PRINT-Flag ist so nah wie Sie erhalten, ohne die json-codierte Zeichenfolge manuell zu bearbeiten. Es sieht so aus, als ob es für dein Beispiel funktionieren sollte.

<?php 
$json = '{ 
    "first-key": "foo", 
    "second-key": "bar" 
}'; 

$arr = json_decode($json, true); 

$arr['second-key'] = 'baz'; 

print_r(json_encode($arr, JSON_PRETTY_PRINT)); 

=

{ 
    "first-key": "foo", 
    "second-key": "baz" 
} 
+0

Ich weiß über die Flagge. Es löst das Problem immer noch nicht. Es formatiert ganze Datei nach seinen Regeln. –