JSON रैपर क्लास नॉट डिसेरियालीज़ेशन

Sep 23 2020

मेरे पास कुछ JSON आ रहे हैं जो इस तरह हैं (गोपनीयता कारणों के लिए हटा दिया गया डेटा)

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

मैंने इसके लिए एक आंतरिक आवरण वर्ग इस तरह लिखा:

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

एक विधि में मैं कुछ ऐसा कर रहा हूं WrapperUserJson data = (WrapperUserJson)JSON.deserialize(st, WrapperUserJson.class);

लेकिन यह हमेशा शून्य रहता है। मैं एक तथ्य के लिए जानता हूं कि JSON को इसे पारित किया जा रहा है, इसलिए मुझे यह नहीं मिला। मैं क्या खो रहा हूँ?

जवाब

1 sfdcfox Sep 23 2020 at 22:03

आपको शीर्ष-स्तरीय विशेषता याद आ रही है user। आपको दूसरे रैपर क्लास की जरूरत है:

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

जो आप तब deserialize विधि में खिलाते हैं:

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

आप JSON2apex का उपयोग करके स्वचालित रूप से JSON से कोड उत्पन्न कर सकते हैं , एक दिए गए JSON स्रोत से एपेक्स को जल्दी से बनाने के लिए एक महान उपकरण।