JSONObject का उपयोग करके जावा में सही JSONArray कैसे बनाएं


129

मैं JSONObject का उपयोग करके जावा में निम्नलिखित की तरह एक JSON ऑब्जेक्ट कैसे बना सकता हूं?

{
    "employees": [
        {"firstName": "John", "lastName": "Doe"}, 
        {"firstName": "Anna", "lastName": "Smith"}, 
        {"firstName": "Peter", "lastName": "Jones"}
    ],
    "manager": [
        {"firstName": "John", "lastName": "Doe"}, 
        {"firstName": "Anna", "lastName": "Smith"}, 
        {"firstName": "Peter", "lastName": "Jones"}
    ]
}

मैंने बहुत से उदाहरण पाए हैं, लेकिन मेरा JSONArray स्ट्रिंग बिल्कुल नहीं है।

जवाबों:


247

आपको शुरू करने के लिए जावा 6 का उपयोग करते हुए कुछ कोड इस प्रकार है:

JSONObject jo = new JSONObject();
jo.put("firstName", "John");
jo.put("lastName", "Doe");

JSONArray ja = new JSONArray();
ja.put(jo);

JSONObject mainObj = new JSONObject();
mainObj.put("employees", ja);

संपादित करें: चूंकि यहां putबनाम के बारे में बहुत भ्रम हो गया है इसलिए addमैं अंतर को समझाने का प्रयास करूंगा। जावा में 6 org.json.JSONArray में putविधि होती है और जावा में 7 javax.json में addविधि होती है।

जावा 7 में बिल्डर पैटर्न का उपयोग करते हुए इसका एक उदाहरण कुछ इस तरह है:

JsonObject jo = Json.createObjectBuilder()
  .add("employees", Json.createArrayBuilder()
    .add(Json.createObjectBuilder()
      .add("firstName", "John")
      .add("lastName", "Doe")))
  .build();

3
शायद भी कोशिश में पकड़ / पकड़? (या विधि का कथन होना चाहिए)
लुकास १

8
JSONArray में पुट विधि नहीं है।
जिम

2
पुट की जगह ऐड का इस्तेमाल करें
CleanX

1
@PT_C yep JsonObject jo = Json.createObjectBuilder (); jo.add ("फर्स्टनाम", "जॉन"); jo.add ("lastName", "Doe"); jo.build ();
ग्रामिन

1
@AnnoldBrown मुख्य सरणी में एक सरणी जोड़ने के लिए इसमें एक कुंजी होनी चाहिए।
22min पर ग्रामिन

15

मुझे लगता है कि आप इस JSON को सर्वर या फ़ाइल से प्राप्त कर रहे हैं, और आप इसमें से JSONArray ऑब्जेक्ट बनाना चाहते हैं।

String strJSON = ""; // your string goes here
JSONArray jArray = (JSONArray) new JSONTokener(strJSON).nextValue();
// once you get the array, you may check items like
JSONOBject jObject = jArray.getJSONObject(0);

उम्मीद है की यह मदद करेगा :)


11

डुप्लिकेट कोड से बचने के लिए व्यक्ति json ऑब्जेक्ट बनाने के लिए छोटी पुन: प्रयोज्य विधि लिखी जा सकती है

JSONObject  getPerson(String firstName, String lastName){
   JSONObject person = new JSONObject();
   person .put("firstName", firstName);
   person .put("lastName", lastName);
   return person ;
} 

public JSONObject getJsonResponse(){

    JSONArray employees = new JSONArray();
    employees.put(getPerson("John","Doe"));
    employees.put(getPerson("Anna","Smith"));
    employees.put(getPerson("Peter","Jones"));

    JSONArray managers = new JSONArray();
    managers.put(getPerson("John","Doe"));
    managers.put(getPerson("Anna","Smith"));
    managers.put(getPerson("Peter","Jones"));

    JSONObject response= new JSONObject();
    response.put("employees", employees );
    response.put("manager", managers );
    return response;
  }

1

कृपया यह प्रयास करें ... आशा है कि यह मदद करता है

JSONObject jsonObj1=null;
JSONObject jsonObj2=null;
JSONArray array=new JSONArray();
JSONArray array2=new JSONArray();

jsonObj1=new JSONObject();
jsonObj2=new JSONObject();


array.put(new JSONObject().put("firstName", "John").put("lastName","Doe"))
.put(new JSONObject().put("firstName", "Anna").put("v", "Smith"))
.put(new JSONObject().put("firstName", "Peter").put("v", "Jones"));

array2.put(new JSONObject().put("firstName", "John").put("lastName","Doe"))
.put(new JSONObject().put("firstName", "Anna").put("v", "Smith"))
.put(new JSONObject().put("firstName", "Peter").put("v", "Jones"));

jsonObj1.put("employees", array);
jsonObj1.put("manager", array2);

Response response = null;
response = Response.status(Status.OK).entity(jsonObj1.toString()).build();
return response;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.