Pemalam Struts2 JSON biasanya mensirikan keseluruhan tindakan ke dalam JSON. Walau bagaimanapun, jika anda hanya perlu mensirikan objek tertentu, anda boleh menentukan objek akar menggunakan atribut "root" dalam konfigurasi struts.xml anda.
Dalam contoh yang diberikan, ralat berlaku kerana pemalam JSON ialah cuba mensiri keseluruhan tindakan Bahagian, yang termasuk senarai objek SearchResult. Walau bagaimanapun, pengendali kejayaan jQuery menjangkakan objek JSON dengan kunci khusus, seperti col1 dan col2.
Untuk menyelesaikan isu ini, anda boleh menentukan senarai baris sebagai objek akar dalam fail struts.xml anda:
<result type="json"> <param name="root">rows</param> </result>
Ini akan mengarahkan pemalam untuk hanya menyerikan senarai baris, yang merupakan objek yang anda ingin akses dalam pengendali kejayaan jQuery anda.
Dalam kelas tindakan anda, anda boleh mencipta kaedah pengambil untuk senarai baris:
public List<MyRow> getRows() { return this.rows; }
Untuk menentukan lajur dalam objek JSON anda, anda boleh mencipta objek nilai seperti MyRow dengan pengambil dan penetap untuk sifat col1 dan col2. Ini membolehkan anda menyesuaikan format bersiri.
Dengan objek akar yang ditentukan, pengendali kejayaan jQuery anda boleh dikemas kini untuk mengakses data menggunakan fungsi $.each:
var handledata = function(data) { $.each(data, function(index) { alert(data[index].col1); alert(data[index].col2); }); }
Dengan menggunakan objek akar, anda boleh mengawal proses bersiri dan memastikan bahawa data yang anda perlukan tersedia dalam kejayaan jQuery anda pengendali.
Atas ialah kandungan terperinci Bagaimana untuk Mensiri Hanya Objek Tertentu dengan Struts2 JSON Plugin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!