Rumah >Java >javaTutorial >Bagaimanakah Anda Boleh Menguji Objek JSON Mengabaikan Pesanan Kanak-kanak?

Bagaimanakah Anda Boleh Menguji Objek JSON Mengabaikan Pesanan Kanak-kanak?

Barbara Streisand
Barbara Streisandasal
2024-11-05 00:06:02554semak imbas

How Can You Test JSON Objects Ignoring Child Order?

Menguji Kesetaraan Objek JSON Mengabaikan Pesanan Kanak-kanak

Apabila menguji data JSON yang dikembalikan daripada perkhidmatan web, adalah penting untuk mempunyai perpustakaan penghuraian JSON yang mampu membandingkan dua objek JSON sambil mengabaikan susunan elemen anak. Ini penting untuk ujian unit, memastikan kandungan JSON sepadan dengan format yang dijangkakan tanpa bergantung pada pesanan kanak-kanak tertentu.

JSONAssert: Penyelesaian Berkesan

Antara pelbagai perpustakaan JSON , JSONAssert Skyscreamer menonjol kerana keupayaannya untuk membandingkan objek JSON sambil mengabaikan pesanan anak. Mod tidak ketatnya menawarkan faedah berikut:

  • Kebolehlanjutan objek: Nilai yang dijangkakan seperti {id:1} akan sepadan dengan {id:1,moredata:'x'} .
  • Penyusunan tatasusunan longgar: Tatasusunan seperti ['anjing','kucing'] dan ['kucing','anjing'] akan dianggap sama.

Contoh Penggunaan

Untuk menggunakan JSONAssert, kaedah ujian boleh ditulis seperti berikut:

<code class="java">@Test
public void testGetFriends() {
    JSONObject data = getRESTData("/friends/367.json");
    String expected = "{friends:[{id:123,name:\"Corby Page\"}"
        + ",{id:456,name:\"Solomon Duskis\"}]}";
    JSONAssert.assertEquals(expected, data, false);
}</code>

Dalam contoh ini, expectedJSONString ialah JSON yang dijangka, actualDataString ialah JSON sebenar, dan isStrict ditetapkan kepada palsu untuk mendayakan mod tidak ketat.

Kesimpulan

JSONAssert menyediakan penyelesaian yang mantap untuk menguji objek JSON sambil mengabaikan pesanan anak. Mod tidak ketatnya menawarkan fleksibiliti dan ketepatan, mengurangkan kerapuhan ujian unit.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menguji Objek JSON Mengabaikan Pesanan Kanak-kanak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn