2017-03-16 1 views
0

ich eine große .txt-Datei mit Daten in diesem Format haben:PHP - Konvertieren Daten gültig json

{ 
    "template_id": "prefix_1", 
    "settings": { 
     "setting1": "bla", 
     "setting2": "blub" 
    }, 
    "test": 1, 
    "test": 2, 
    "test": 3 
}, 
{ 
    "template_id": "other_prefix_1", 
    "values": { 
     "value1": "bla", 
     "value2": "blub" 
    }, 
    "something": "Hello!" 
}, 
{ 
    "template_id": "prefix_2", 
    "settings": { 
     "setting1": "bla", 
     "setting2": "blub" 
    }, 
    "test": 1, 
    "test": 2, 
    "test": 3 
} 

, die wie json aussieht, aber es ist nicht gültig json und ich möchte es gültig machen. Das Ergebnis sollte wie folgt sein:

{ 
    "prefix": [ 
     { 
      "id": "1", 
      "settings": { 
       "setting1": "bla", 
       "setting2": "blub" 
      }, 
      "tests": [ 
       "test": 1, 
       "test": 2, 
       "test": 3 
      ] 
     }, 
     { 
      "id": "2", 
      "settings": { 
       "setting1": "bla", 
       "setting2": "blub" 
      }, 
      "tests": [ 
       "test": 1, 
       "test": 2, 
       "test": 3 
      ] 
     } 
    ], 
    "other_prefix": [ 
     { 
      "id": "1", 
      "values": { 
       "value1": "bla", 
       "value2": "blub" 
      }, 
      "something": "Hello!" 
     } 
    ] 
} 

jemand eine gute Idee, wie ich mit PHP das tun kann, wenn ich die Daten aus der txt-Datei lesen? Die Zeilen sind genau so, also kann ich bei Bedarf jede Zeile lesen.

+0

Sie sind nicht allein. Google: "wie man ungültigen JSON in PHP pars" Sie können eine Abkürzung finden, indem Sie den Code einer anderen Person anpassen. Löschen Sie diese Frage, weil Sie nichts versucht haben. Dann, wenn Sie Ihren Arbeitsversuch nicht bekommen können (nach gründlichem Recherchieren und Experimentieren), bringen Sie Ihr Problem wieder zu SO zurück. – mickmackusa

Antwort

0

Wenn das Format, das Sie in der TXT-Datei haben, ein echtes Format ist, das von einer PHP-Funktion in ein Objekt analysiert werden kann, müssen Sie einen Parser von Grund auf neu schreiben. Es beinhaltet eine Schleife, die Zeile für Zeile liest, einige IFs Statements und reguläre Ausdrücke.

Dann können Sie einen Hash mit Hashes und Listen erstellen.

Und dann können Sie diesen Hash in eine JSON-Zeichenfolge mit json_encode ($ myhash) konvertieren.