Cum puteți converti XML în JSON în PHP


Cel mai bun răspuns

Puteți face acest lucru cu ajutorul unor funcții încorporate, dacă sunteți pasionat de php-ul de bază. Pur și simplu faceți-o ca mai jos:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Să găsim câteva modalități fanteziste de a face acest lucru. Trebuie.

În primul rând, avem nevoie de o clasă pentru a converti XML în 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);

}

}

Nu am testat codul. Este posibil să nu se comporte așa cum am vrut. Dar merită încercat. De obicei, problema va fi acolo în modul în care PHP tratează obiectele și șirurile din XML. Sper să funcționeze! Puteți utiliza clasa de mai sus după cum se menționează mai jos:

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

Sau puteți obține un pachet de compozitori și îl puteți implementa fără griji ca ar fi fost testat.

markwilson / xml-to-json

Răspuns

Pentru a gestiona formatul de fișier JSON, Python oferă un modul numit JSON.

PASUL 1: instalați modulul xmltodict folosind pip sau orice alt manager de pachete Python

pip install xmltodict

PASUL 2: importați modulul json utilizând cuvântul cheie import

import json

PASUL 3: Citiți aici fișierul xml, „data\_dict” este variabila în care ne-am încărcat datele XML după ce le-am convertit în tip de date dicționar.

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

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

PASUL 4: Închideți fișierul XML

xml\_file.close()

PASUL 5: Conversia xml\_data într-un dicționarul și stocarea acestuia într-un obiect JSON variabil sunt înconjurate de acolade {}. Sunt scrise în perechi de chei și valori. json.loads () preia un șir și returnează un obiect json. json.dumps () preia un obiect json și returnează un șir. Folosim xml\_data ca șir de intrare și generăm obiect pyhon, deci folosim json.dumps ()

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

Aici, json\_data este variabilă utilizată pentru a stoca obiectul generat.

PASUL 6: Scrieți json\_data în fișierul de ieșire

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

json\_file.write(json\_data)

PASUL 7: Închideți fișierul de ieșire

json\_file.close()

Exemplu:

Fișier XML:

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

Ieșire:

Pentru a învăța lucruri noi și interesante, puteți verifica acest lucru.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *