Rumah >Java >javaTutorial >Bagaimana Membandingkan Objek JSON untuk Kesaksamaan Semasa Mengabaikan Pesanan Kanak-kanak di Jawa?

Bagaimana Membandingkan Objek JSON untuk Kesaksamaan Semasa Mengabaikan Pesanan Kanak-kanak di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-05 00:44:02662semak imbas

How to Compare JSON Objects for Equality While Ignoring Child Order in Java?

Menguji Objek JSON untuk Kesaksamaan sambil Mengabaikan Pesanan Kanak-kanak dalam Java

Dalam ujian unit, adalah perkara biasa untuk membandingkan objek JSON yang dikembalikan daripada perkhidmatan web kepada nilai yang diharapkan. Walau bagaimanapun, sesetengah perpustakaan JSON mungkin melakukan perbandingan rujukan yang ketat, yang boleh rapuh dan gagal disebabkan oleh perbezaan dalam susunan kanak-kanak.

Untuk tujuan ini, perpustakaan Skyscreamer JSONAssert menyediakan penyelesaian. Mod tidak ketatnya membolehkan fleksibiliti dengan:

  • Membenarkan kebolehlanjutan objek: Objek yang dijangkakan boleh termasuk medan tambahan tanpa menyebabkan perbandingan gagal.
  • Membenarkan susunan tatasusunan yang longgar: Tatasusunan boleh tidak teratur dan masih melepasi perbandingan.

Sebaliknya, mod ketat berkelakuan lebih konservatif, serupa dengan kelas ujian json-lib.

Untuk menggunakan JSONAssert, ujian boleh dibina sebagai 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); // Non-strict mode
}</code>

Parameter dalam JSONAssert.assertEquals() termasuk rentetan JSON yang dijangkakan, rentetan data sebenar dan bendera yang menunjukkan mod ketat atau tidak.

JSONAssert menyediakan mesej ralat yang jelas, yang penting apabila membandingkan objek JSON yang besar, memastikan keteguhan dalam ujian unit.

Atas ialah kandungan terperinci Bagaimana Membandingkan Objek JSON untuk Kesaksamaan Semasa Mengabaikan Pesanan Kanak-kanak di Jawa?. 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