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.JSONArrayputমেথড থাকে এবং জাভাতে javax.jsonaddমেথড থাকে।

জাভা 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.