Kuinka muuntaa XML JSON: ksi PHP: ssä


Paras vastaus

Voit tehdä sen joidenkin sisäänrakennettujen toimintojen avulla, jos olet kiinnostunut ydin php: stä. Tee se seuraavasti:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Etsitään hieno tapa tehdä tämä. Pitäisikö meidän.

Tarvitsemme ensin luokan, jotta voimme muuntaa XML: n JSON: ksi.

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

}

}

En ole testannut koodia. Se ei välttämättä toimi niin kuin tarkoitin. Mutta se kannattaa kokeilla. Yleensä ongelma on siinä, miten PHP kohtelee objekteja ja merkkijonoja XML: stä. Toivottavasti se toimii! Voit käyttää yllä olevaa luokkaa alla esitetyllä tavalla:

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

Tai voit hankkia jonkin verran säveltäjäpakettia ja toteuttaa sen huolettomasti se olisi testattu.

markwilson / xml-to-json

Vastaa

JSON-tiedostomuodon käsittelemiseksi Python tarjoaa moduulin nimeltä JSON.

VAIHE 1: asenna xmltodict-moduuli pipin tai minkä tahansa muun python-paketinhallinnan avulla. > VAIHE 2: tuo json-moduuli avainsanalla tuonti

import json

VAIHE 3: Lue xml-tiedosto täältä, “data\_dict” on muuttuja, johon olemme ladanneet XML-datamme muuntamisen jälkeen sanakirjan tietotyyppi.

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

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

VAIHE 4: Sulje XML-tiedosto

xml\_file.close()

VAIHE 5: Muunna xml\_data tiedostoksi sanakirja ja tallenna se muuttujaan. JSON-objektia ympäröivät kiharat olkaimet {}. Ne kirjoitetaan avain- ja arvopareina. json.loads () vie merkkijonon ja palauttaa json-objektin. json.dumps () vie json-objektin ja palauttaa merkkijonon. Käytämme syötemerkkijonona xml\_data ja luomme pyhon-objektin, joten käytämme json.dumps ()

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

Tässä json\_data on muuttuja, jota käytetään luoman objektin tallentamiseen.

VAIHE 6: Kirjoita json\_data-tiedosto lähtötiedostoon

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

json\_file.write(json\_data)

VAIHE 7: Sulje tulostetiedosto

json\_file.close()

Esimerkki:

XML-tiedosto:

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

Tulos:

Jos haluat oppia uusia mielenkiintoisia asioita, voit tarkistaa sen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *