जवाबों:
आपको उपयोग करने की आवश्यकता नहीं है JsonObject
। आपको JSON स्ट्रिंग्स और अपने स्वयं के जावा ऑब्जेक्ट से / में कनवर्ट करने के लिए Gson का उपयोग करना चाहिए।
Gson उपयोगकर्ता गाइड देखें :
(क्रमबद्धता)
Gson gson = new Gson(); gson.toJson(1); // prints 1 gson.toJson("abcd"); // prints "abcd" gson.toJson(new Long(10)); // prints 10 int[] values = { 1 }; gson.toJson(values); // prints [1]
(Deserialization)
int one = gson.fromJson("1", int.class); Integer one = gson.fromJson("1", Integer.class); Long one = gson.fromJson("1", Long.class); Boolean false = gson.fromJson("false", Boolean.class); String str = gson.fromJson("\"abc\"", String.class); String anotherStr = gson.fromJson("[\"abc\"]", String.class)
JsonObject
एक मध्यवर्ती प्रतिनिधित्व है। 99% उपयोग के मामलों में, आपको वास्तव में केवल जावा ऑब्जेक्ट के रूप में, या JSON युक्त स्ट्रिंग के रूप में अपने डेटा का प्रतिनिधित्व करने के बारे में ध्यान रखना चाहिए।
यदि आप उपयोग करना चाहते हैं, तो आप इसे JavaBean में बदल सकते हैं:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
gson.fromJson(jsonString, JavaBean.class)
JsonObject का उपयोग करने के लिए, जो अधिक लचीला है, निम्नलिखित का उपयोग करें:
String json = "{\"Success\":true,\"Message\":\"Invalid access token.\"}";
JsonParser jsonParser = new JsonParser();
JsonObject jo = (JsonObject)jsonParser.parse(json);
Assert.assertNotNull(jo);
Assert.assertTrue(jo.get("Success").getAsString());
जो निम्नलिखित के बराबर है:
JsonElement jelem = gson.fromJson(json, JsonElement.class);
JsonObject jobj = jelem.getAsJsonObject();
JsonObject jo = jsonParser.parse(json).getAsJsonObject();
औरAssert.assertTrue(jo.get("Success").getAsBoolean());
इसे सरल तरीके से करने के लिए, नीचे विचार करें:
JsonObject jsonObject = (new JsonParser()).parse(json).getAsJsonObject();
ऐसा लगता है कि उपरोक्त जवाब पूरी तरह से सवाल का जवाब नहीं दिया।
मुझे लगता है कि आप नीचे कुछ पसंद कर रहे हैं:
class TransactionResponse {
String Success, Message;
List<Response> Response;
}
TransactionResponse = new Gson().fromJson(response, TransactionResponse.class);
जहाँ मेरी प्रतिक्रिया कुछ इस तरह है:
{"Success":false,"Message":"Invalid access token.","Response":null}
जैसा कि आप देख सकते हैं, चर नाम कुंजी मूल्य जोड़ी में कुंजी के जोंस स्ट्रिंग प्रतिनिधित्व के समान होना चाहिए। यह स्वचालित रूप से आपके gson स्ट्रिंग को JsonObject में बदल देगा।
@SerializedName("Success")
इसके बजाय उदाहरण के लिए उपयोग करें ।
String emailData = {"to": "abc@abctest.com","subject":"User details","body": "The user has completed his training"
}
// Java model class
public class EmailData {
public String to;
public String subject;
public String body;
}
//Final Data
Gson gson = new Gson();
EmailData emaildata = gson.fromJson(emailData, EmailData.class);
Gson gson = new Gson();
YourClass yourClassObject = new YourClass();
String jsonString = gson.toJson(yourClassObject);
ध्यान दें कि Gson 2.8.6 के रूप में , उदाहरण विधि JsonParser.parse
को पदावनत किया गया है और स्थैतिक विधि द्वारा प्रतिस्थापित किया गया है JsonParser.parseString
:
JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject();