Beginnend mit Ihrer Nicht-JSON-String:
$your_string = '{ "0: Snack, 1:Juice, 2:Any "}';
die äußeren Klammern wegschneiden, Zitate und Raum, dann auf Komma explodieren:
$trimmed = trim($your_string, '{}" ');
$split = explode(', ', $trimmed);
Dies wird Ihnen ein Array erhalten wie diese :
array (size=3)
0 => string '0: Snack' (length=8)
1 => string '1:Juice' (length=7)
2 => string '2:Any' (length=5)
Von diesem Punkt können Sie die nicht-JSON führen Sie wie folgt erhalten:
$result = '{"' . implode('", "', $split) . '"}';
Oder tatsächlich erhalten JSON wie folgt aus:
$resplit = array_map(function($x) { return explode(':', $x); }, $split);
$indexed = array_column($resplit, 1, 0);
$json = json_encode($indexed);
Beachten Sie, dass da Sie Integer-Indizes haben, die Null-basierte und sequentiell sind, die JSON Sie mit am Ende wird ein Array sein ([" Snack","Juice","Any"]
) eher als ein Objekt ({"0":" Snack","1":"Juice","2":"Any"}
). Für andere Indizes erhalten Sie das Objektformular.
Ich sehe keine JSON oder irgendein PHP - würden Sie bitte den Code teilen, mit dem Sie Probleme haben? –
Die JSON Nein hier –
Das ist kein JSON String, wie sieht es wirklich aus – RiggsFolly