saya tidak dapat menggunakan XML secara langsung karena persyaratan dalam spesifikasi, tetapi saya setuju dengan Anda. Terima kasih!
BeachRunnerFred
@BeachRunnerJoe: Impor apa yang perlu saya tulis? import net.sf.json.JSONObject;atau import org.json.JSONObject;. Juga stoples mana yang harus saya sertakan?
Peringatan: Paket json.org.XML tidak ada di Android!
Ludovic Landry
2
@danieltalsky: Impor apa yang harus saya tulis? import net.sf.json.JSONObject;atau import org.json.JSONObject;. Juga stoples mana yang harus saya sertakan?
Bagaimana jika Anda punya <test attrib="moretest" content="foo">bar</test>?
wchargin
1
CATATAN: XML.toJSONObject () milik org.json () juga dengan benar mengonversi daftar xml ke json array (tidak seperti jackml's XmlMapper yang secara default menelan dalam hati).
Agoston Horvath
58
Untuk mengonversi File XML ke JSON termasuk dependensi berikut
gunakan versi json yang disebutkan dalam posting jika Anda berada di java 7 karena versi terbaru melempar kesalahan aneh.
urug
Jika Anda memiliki file dtd yang valid untuk cuplikan xml, maka Anda dapat dengan mudah mengonversi xml ke json dan json ke xml menggunakan jar tautan gerhana open source. Contoh proyek JAVA yang terperinci dapat ditemukan di sini: cubicrace.com/2015/06/Bagaimana- mengkonversi
Piyush Chordia
Saya harus menyalin seluruh paket JSON ke proyek saya dan mengganti nama paket tersebut. Menambahkan ke gradle memberi peringatan tentang paket duplikat dari Android selama pembuatan.
codelearner
28
Satu-satunya masalah dengan JSON di Jawa adalah bahwa jika XML Anda memiliki satu anak, tetapi merupakan array, itu akan mengubahnya menjadi objek, bukan array. Ini dapat menyebabkan masalah jika Anda selalu secara dinamis mengkonversi dari XML ke JSON, di mana jika contoh XML Anda hanya memiliki satu elemen, Anda mengembalikan sebuah objek, tetapi jika memiliki 2+, Anda mengembalikan array, yang dapat menyebabkan masalah penguraian bagi orang yang menggunakan JSON.
Kelas XML2JSON dari Infoscoop memiliki cara menandai elemen yang merupakan array sebelum melakukan konversi, sehingga array dapat dipetakan dengan benar, bahkan jika hanya ada satu anak dalam XML.
Berikut ini adalah contoh menggunakannya (dalam bahasa yang sedikit berbeda, tetapi Anda juga dapat melihat bagaimana array digunakan dari metode nodelist2json () pada tautan XML2JSON).
kami menggunakan pustaka "xml-to-json" dengan python dan ini adalah masalah semantik. Apa yang kami lakukan untuk menyelesaikan masalah "array atau objek" ini adalah menulis metode "tryConvertToArray ()", yang mengembalikan array dengan objek tunggal di dalamnya. Jadi, Anda selalu dapat mempercayai nilai Anda sebagai array
kommradHomer
Tidak jelas bagi saya bagaimana cara memecahkan masalah. Apakah Anda hanya membuat semuanya menjadi array bukan objek? Misalnya, jika saya memiliki XML <results><result><value>1</value></result></results>, apakah akan menghasilkan { "results" : { "result" : { "value" : "1" } } } atau { "results" : [ { "result" : { "value" : "1" } } ] }
Marcus
Ada sesuatu yang kami harapkan sebagai array. Masalah muncul ketika array ini hanya memiliki 1 elemen, menjadikannya objek untuk konverter xml-to-json. Jadi, seperti yang kita harapkan ini menjadi sebuah array bahkan untuk satu elemen, kita memeriksa dan mengubahnya menjadi sebuah array, memastikan kita memiliki sebuah array tempat kita mengharapkan sebuah array.
kommradHomer
Tetapi bagaimana Anda mengharapkan elemen tertentu menjadi array? XML2JSON memberi tag pada elemen. Tidak jelas bagaimana mengharapkannya menjadi array tanpa memberi tag, karena jika tidak Anda tidak akan pernah tahu dengan 'elemen' satu elemen.
Marcus
Misalnya, ada elemen yang disebut "phonenumbers". Dan ada 1 atau lebih elemen "phonenumber" dalam elemen "phonenumber". Jadi ketika hanya ada satu elemen "phonenumber" di "phonenumber", xml2json membuat objek phonenumber, tetapi saya membuat array phonenumber dan meletakkan objek phonenumber di dalamnya.
Saya tidak tahu apa masalah sebenarnya Anda, tetapi jika Anda menerima XML dan ingin mengembalikan JSON (atau sesuatu), Anda juga dapat melihat JAX-B. Ini adalah standar untuk marshalling / unmarshalling POJO Java ke XML dan / atau Json. Ada beberapa pustaka yang mengimplementasikan JAX-B, misalnya Apache's CXF.
import net.sf.json.JSONObject;
atauimport org.json.JSONObject;
. Juga stoples mana yang harus saya sertakan?Jawaban:
JSON di Jawa memiliki beberapa sumber yang bagus.
Ketergantungan maven:
XML.java
adalah kelas yang Anda cari:Output adalah:
sumber
import net.sf.json.JSONObject;
atauimport org.json.JSONObject;
. Juga stoples mana yang harus saya sertakan?<test attrib="moretest" content="foo">bar</test>
?Untuk mengonversi File XML ke JSON termasuk dependensi berikut
dan Anda dapat mengunduh Jar dari Maven Repository di sini . Kemudian terapkan sebagai:
sumber
Satu-satunya masalah dengan JSON di Jawa adalah bahwa jika XML Anda memiliki satu anak, tetapi merupakan array, itu akan mengubahnya menjadi objek, bukan array. Ini dapat menyebabkan masalah jika Anda selalu secara dinamis mengkonversi dari XML ke JSON, di mana jika contoh XML Anda hanya memiliki satu elemen, Anda mengembalikan sebuah objek, tetapi jika memiliki 2+, Anda mengembalikan array, yang dapat menyebabkan masalah penguraian bagi orang yang menggunakan JSON.
Kelas XML2JSON dari Infoscoop memiliki cara menandai elemen yang merupakan array sebelum melakukan konversi, sehingga array dapat dipetakan dengan benar, bahkan jika hanya ada satu anak dalam XML.
Berikut ini adalah contoh menggunakannya (dalam bahasa yang sedikit berbeda, tetapi Anda juga dapat melihat bagaimana array digunakan dari metode nodelist2json () pada tautan XML2JSON).
sumber
<results><result><value>1</value></result></results>
, apakah akan menghasilkan{ "results" : { "result" : { "value" : "1" } } }
atau{ "results" : [ { "result" : { "value" : "1" } } ] }
Saya telah mengunggah proyek yang dapat Anda buka langsung dalam gerhana dan menjalankan itu semua https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA
Terima kasih
sumber
Saya menemukan ini dengan cara cepat dan mudah: Digunakan:
org.json.XML
kelas dari java-json.jarsumber
Saya tidak tahu apa masalah sebenarnya Anda, tetapi jika Anda menerima XML dan ingin mengembalikan JSON (atau sesuatu), Anda juga dapat melihat JAX-B. Ini adalah standar untuk marshalling / unmarshalling POJO Java ke XML dan / atau Json. Ada beberapa pustaka yang mengimplementasikan JAX-B, misalnya Apache's CXF.
sumber