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"}
    ]
}

আমি অনেক উদাহরণ খুঁজে পেয়েছি, তবে আমার জাসোনআরে স্ট্রিংটি নয় not

উত্তর:


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আমি পার্থক্যটি ব্যাখ্যা করার চেষ্টা করব। জাভাতে or org.json.JSONArray এ putমেথড থাকে এবং জাভাতে 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 এর কোনও পুট পদ্ধতি নেই।
— জিম


1
@PT_C ইয়েপ জসনঅবজেক্ট জো = জসন.ক্রেটঅবজেক্টবিল্ডার (); jo.add ("প্রথম নাম", "জন"); jo.add ("সর্বশেষ নাম", "ডো"); jo.build ();
— গ্রামীন

1
@ আর্নল্ডব্রাউন মেইনবোজে একটি অ্যারে যুক্ত করতে তার একটি চাবি থাকা দরকার।
— গ্রামেমন

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

ডুপ্লিকেট কোড এড়ানোর জন্য ব্যক্তি জেসন অবজেক্ট তৈরি করার জন্য ছোট পুনরায় ব্যবহারযোগ্য পদ্ধতিতে লেখা যেতে পারে

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;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.