Hvordan konvertere XML til JSON i PHP


Beste svaret

Du kan gjøre det ved hjelp av noen innebygde funksjoner hvis du er glad i core php. Bare gjør det som nedenfor:

$xmlObject = simplexml\_load\_string($xmlString);

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

La oss finne noen fancy måter å gjøre dette på. Skal vi.

Først trenger vi litt klasse for å konvertere XML til JSON.

class XmlToJson{

private $xmlObject;

public function getXmlObject(){

return $this->xmlObject;

}

// It"s basic constructor. Just getting the XML object

// If we have XML Object then we can just create new

// Object with XML Object as parameter.

public function \_\_construct($xmlObject = null){

$this->xmlObject = $xmlObject;

}

// Read from XML file and create Object from the contents.

public static function fromFile($filepath){

if(!file\_exists($filepath){

throw new Exception("File not found");

}

$xmlString = file\_get\_contents($filepath);

if($xmlString === false){

throw new Exception("Could not read the file");

}

return self::fromString($xmlString);

}

// Get XML String and create new Object from the string.

public static function fromString($xmlString){

if($xmlObject === false){

throw new Exception("Could not convert to XML Object");

}

return new XmlToJson($xmlObject);

}

// Get Json Object from the XML Object we have

public function getJson(){

$jsonString = json\_encode($this->xmlObject);

return json\_decode($jsonString);

}

}

Jeg har ikke testet koden. Det oppfører seg kanskje ikke slik jeg mente. Men det er verdt å prøve. Vanligvis vil problemet være der i måten PHP behandler objekter og strenger fra XML på. Jeg håper det fungerer skjønt! Du kan bruke klassen ovenfor som angitt nedenfor:

$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();

Eller du kan få en komponistpakke og implementere den uten bekymringer som det hadde blitt testet.

markwilson / xml-to-json

Svar

For å håndtere JSON-filformatet, gir Python en modul som heter JSON.

TRINN 1: installer xmltodict-modul ved hjelp av pip eller hvilken som helst annen python-pakkebehandling

pip install xmltodict

TRINN 2: importer json-modul ved hjelp av nøkkelordet import

import json

TRINN 3: Les xml-filen her, “data\_dict” er variabelen vi har lastet inn XML-data i etter å ha konvertert den til ordbokdatatype.

with open("xml\_file.xml") as xml\_file:

data\_dict = xmltodict.parse(xml\_file.read())

TRINN 4: Lukk XML-filen

xml\_file.close()

TRINN 5: Konverter xml\_data til en ordbok og lagre den i et variabelt JSON-objekt er omgitt av krøllete bukseseler {}. De er skrevet i nøkkel- og verdipar. json.loads () tar inn en streng og returnerer et json-objekt. json.dumps () tar inn et json-objekt og returnerer en streng. Vi bruker xml\_data som inndatastreng og genererer pyhon-objekt, så vi bruker json.dumps ()

json\_data = json.dumps(data\_dict)

Her er json\_data variabel som brukes til å lagre det genererte objektet.

TRINN 6: Skriv json\_data til utdatafilen

with open("data.json", "w") as json\_file:

json\_file.write(json\_data)

TRINN 7: Lukk utdatafilen

json\_file.close()

Eksempel:

XML-fil:

# Program to convert an xml

# file to json file

# import json module and xmltodict

# module provided by python

import json

import xmltodict

# open the input xml file and read

# data in form of python dictionary

# using xmltodict module

with open("test.xml") as xml\_file:

data\_dict = xmltodict.parse(xml\_file.read())

xml\_file.close()

# generate the object using json.dumps()

# corresponding to json data

json\_data = json.dumps(data\_dict)

# Write the json data to output

# json file

with open("data.json", "w") as json\_file:

json\_file.write(json\_data)

json\_file.close()

Utgang:

For å lære spennende nye ting, kan du sjekke det.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *