JSON Wrapper Class, Deserializtion değil

Sep 23 2020

Bunun gibi gelen bazı JSON'larım var (gizlilik nedeniyle veri kaldırıldı

{"user":{"id":"","email":"","first_name":"","last_name":""}, "STUFF I DONT WANT HERE"}

Bunun için bir iç sarmalayıcı sınıfı yazdım:

    public with sharing class WrapperUserJson {
        public String id;
        public String email;
        public String first_name;
        public String last_name;
    }

Bir yöntemde şöyle bir şey yapıyorum WrapperUserJson data = (WrapperUserJson)JSON.deserialize(st, WrapperUserJson.class);

Ama her zaman boş döndürür. JSON'un kendisine aktarıldığını biliyorum, bu yüzden anlamıyorum. Neyi kaçırıyorum?

Yanıtlar

1 sfdcfox Sep 23 2020 at 22:03

En üst düzey özelliği kaçırıyorsunuz user. İkinci bir sarmalayıcı sınıfına ihtiyacınız var:

public class WrapperResponseJson {
    WrapperUserJson user;
}
public class WrapperUserJson {
    public String id;
    public String email;
    public String first_name;
    public String last_name;
}

Daha sonra seriyi kaldırma yöntemine beslersiniz:

WrapperResponseJson data = (WrapperResponseJson)JSON.deserialize(st, WrapperResponseJson.class);

Belirli bir JSON kaynağından hızlı bir şekilde Apex oluşturmak için harika bir araç olan json2apex'i kullanarak JSON'dan otomatik olarak kod oluşturabilirsiniz.