Hur man konverterar XML till JSON i PHP


Bästa svaret

Du kan göra det med hjälp av några inbyggda funktioner om du gillar core php. Gör det som nedan:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Låt oss hitta något snyggt sätt att göra detta. Ska vi.

Först behöver vi lite klass för att konvertera XML till 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);

}

}

Jag har inte testat koden. Det kanske inte beter sig som jag menade. Men det är värt ett försök. Vanligtvis kommer problemet att finnas där hur PHP behandlar objekt och strängar från XML. Jag hoppas att det fungerar dock! Du kan använda klassen ovan som anges nedan:

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

Eller så kan du hämta något kompositörspaket och implementera det utan bekymmer som det skulle ha testats.

markwilson / xml-to-json

Svar

För att hantera JSON-filformatet tillhandahåller Python en modul med namnet JSON.

STEG 1: installera xmltodict-modul med pip eller någon annan python-pakethanterare

pip install xmltodict

STEG 2: importera json-modul med nyckelordet import

import json

STEG 3: Läs xml-filen här, “data\_dict” är variabeln där vi har laddat våra XML-data efter att ha konverterat den till ordlista datatyp.

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

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

STEG 4: Stäng XML-filen

xml\_file.close()

STEG 5: Konvertera xml\_data till en ordlista och lagra den i ett variabelt JSON-objekt omges av lockiga hängslen {}. De är skrivna i nyckel- och värdepar. json.loads () tar in en sträng och returnerar ett json-objekt. json.dumps () tar in ett json-objekt och returnerar en sträng. Vi använder xml\_data som inmatningssträng och genererar pyhon-objekt, så vi använder json.dumps ()

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

Här är json\_data variabel som används för att lagra det genererade objektet.

STEG 6: Skriv json\_data till utdatafilen

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

json\_file.write(json\_data)

STEG 7: Stäng utdatafilen

json\_file.close()

Exempel:

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()

Output:

För att lära dig nya spännande saker kan du kolla in det.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *