JSON Wrapper Class bukan Deserializtion
Saya memiliki beberapa JSON yang masuk seperti ini (data dihapus karena alasan privasi.
{"user":{"id":"","email":"","first_name":"","last_name":""}, "STUFF I DONT WANT HERE"}
Saya menulis kelas pembungkus batin untuk itu seperti ini:
public with sharing class WrapperUserJson {
public String id;
public String email;
public String first_name;
public String last_name;
}
Dalam metode saya melakukan sesuatu seperti WrapperUserJson data = (WrapperUserJson)JSON.deserialize(st, WrapperUserJson.class);
Tapi itu selalu mengembalikan nol. Saya tahu pasti bahwa JSON sedang diteruskan jadi saya tidak mengerti. Apa yang saya lewatkan?
Jawaban
Anda kehilangan atribut tingkat atas user. Anda membutuhkan kelas pembungkus kedua:
public class WrapperResponseJson {
WrapperUserJson user;
}
public class WrapperUserJson {
public String id;
public String email;
public String first_name;
public String last_name;
}
Yang kemudian Anda masukkan ke dalam metode deserialize:
WrapperResponseJson data = (WrapperResponseJson)JSON.deserialize(st, WrapperResponseJson.class);
Anda dapat secara otomatis menghasilkan kode dari JSON menggunakan json2apex , alat yang hebat untuk membuat Apex dengan cepat dari sumber JSON tertentu.