অ্যান্ড্রয়েড- JSON অ্যারে এবং JSON অবজেক্ট তৈরি করুন


122

অ্যান্ড্রয়েডে এই ফর্ম্যাটটি দিয়ে কীভাবে আমি একটি জেএসএন তৈরি করতে পারি: যে এপিআইটি আমি পাস করব তা জেসনআর্রে এর পরে বস্তুকে পার্স করবে। অথবা ঠিক আছে যদি কোনও জসন বস্তুটি পাস করতে হয়? যেহেতু আমাকে কেবলমাত্র সার্ভিস কল প্রতি 1 টি লেনদেন সন্নিবেশ করতে হবে।

{
    "student": [
        {
            "id": 1,
            "name": "John Doe",
            "year": "1st",
            "curriculum": "Arts",
            "birthday": 3/3/1995
        },
        {
            "id": 2,
            "name": "Michael West",
            "year": "2nd",
            "curriculum": "Economic",
            "birthday": 4/4/1994
        }
    ]
}

আমি যা জানি তা কেবল জেএসএনওবজেক্ট। এটার মত.

JSONObject obj = new JSONObject();
try {
    obj.put("id", "3");
    obj.put("name", "NAME OF STUDENT");
    obj.put("year", "3rd");
    obj.put("curriculum", "Arts");
    obj.put("birthday", "5/5/1993");
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

কোন ধারনা. ধন্যবাদ



পোস্ট করা ফর্ম্যাটটি অর্জনের জন্য JSONObject একটি JSONArray এ রাখুন ..
sftdev

উত্তর:


314

নিম্নলিখিত কোড ব্যবহার করুন:

JSONObject student1 = new JSONObject();
try {
    student1.put("id", "3");
    student1.put("name", "NAME OF STUDENT");
    student1.put("year", "3rd");
    student1.put("curriculum", "Arts");
    student1.put("birthday", "5/5/1993");

} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

JSONObject student2 = new JSONObject();
try {
    student2.put("id", "2");
    student2.put("name", "NAME OF STUDENT2");
    student2.put("year", "4rd");
    student2.put("curriculum", "scicence");
    student2.put("birthday", "5/5/1993");

} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}


JSONArray jsonArray = new JSONArray();

jsonArray.put(student1);
jsonArray.put(student2);

JSONObject studentsObj = new JSONObject();
    studentsObj.put("Students", jsonArray);



String jsonStr = studentsObj.toString();

    System.out.println("jsonString: "+jsonStr);

নিখুঁত উদাহরণ!
আয়জ আলিফভ

27
public JSONObject makJsonObject(int id[], String name[], String year[],
            String curriculum[], String birthday[], int numberof_students)
            throws JSONException {
        JSONObject obj = null;
        JSONArray jsonArray = new JSONArray();
        for (int i = 0; i < numberof_students; i++) {
            obj = new JSONObject();
            try {
                obj.put("id", id[i]);
                obj.put("name", name[i]);
                obj.put("year", year[i]);
                obj.put("curriculum", curriculum[i]);
                obj.put("birthday", birthday[i]);

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            jsonArray.put(obj);
        }

        JSONObject finalobject = new JSONObject();
        finalobject.put("student", jsonArray);
        return finalobject;
    }

এই সহজ পদ্ধতির জন্য ধন্যবাদ।
কিশুড্রয়েড

5
 JSONObject obj = new JSONObject();
            try {
                obj.put("id", "3");
                obj.put("name", "NAME OF STUDENT");
                obj.put("year", "3rd");
                obj.put("curriculum", "Arts");
                obj.put("birthday", "5/5/1993");

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             JSONArray js=new JSONArray(obj.toString());
             JSONObject obj2 = new JSONObject();
             obj2.put("student", js.toString());

আমি ধরে নিই যে 'জেএসএনওবজেক্ট ওজেক্ট 2 = নতুন জেএসএনওবজেক্ট () এ' আপত্তি '; জেজ.পুট ("ছাত্র", js.toString ()); ' 'অবজেক্ট 2'?
sftdev

4

আপনি এএ পদ্ধতি তৈরি করতে এবং এতে প্যারামিটারগুলি পাস করতে পারেন এবং প্রতিক্রিয়া হিসাবে জসন পেতে পারেন।

  private JSONObject jsonResult(String Name,int id, String curriculum) throws JSONException {
        JSONObject json = null;
        json = new JSONObject("{\"" + "Name" + "\":" + "\"" + Name+ "\""
            + "," + "\"" + "Id" + "\":" + id + "," + "\"" + "Curriculum"
            + "\":" + "\"" + curriculum+ "\"" + "}");
        return json;
      }

আমি আশা করি এটা তোমাকে সাহায্য করবে।


3

এখানে একটি সরল (তবে সংক্ষিপ্ত নয়) সংস্করণ যা ট্রাই-ক্যাচের প্রয়োজন হয় না:

Map<String, String> data = new HashMap<>();
data.put("user", "mark@facebook.com");
data.put("pass", "123");

JSONObject jsonData = new JSONObject(data);

আপনি যদি কোনও ক্ষেত্রে কোনও জসনঅবজেক্ট যুক্ত করতে চান তবে আপনি এইভাবে এটি করতে পারেন:

data.put("socialMedia", (new JSONObject()).put("facebookId", "1174989895893400"));
data.put("socialMedia", (new JSONObject()).put("googleId", "106585039098745627377"));

দুর্ভাগ্যক্রমে পুট () পদ্ধতির কারণে এটির জন্য ট্রাই-ক্যাচ দরকার।

যদি আপনি আবার চেষ্টা চালিয়ে যাওয়া এড়াতে চান (খুব প্রস্তাবিত নয়, তবে আপনি যদি ভাল ফর্ম্যাটেড জসন স্ট্রিংয়ের গ্যারান্টি দিতে পারেন তবে) আপনি সম্ভবত এই উপায়টি করতে পারেন:

data.put("socialMedia", "{ 'facebookId': '1174989895893400' }");

আপনি জসনআরাইস এবং আরও কিছু সম্পর্কে একই করতে পারেন।

চিয়ার্স।


1

আমি উত্তর না পাওয়া পর্যন্ত এটার সাথে লড়াই করে যাচ্ছি:

  1. জিএসওএন লাইব্রেরি ব্যবহার করুন:

    Gson gson = Gson();
    String str_json = gson.tojson(jsonArray);`
  2. জসন অ্যারে পাস করুন। এটি অটো স্ট্রিংযুক্ত হবে। এই বিকল্পটি আমার পক্ষে পুরোপুরি কাজ করেছিল worked


1
JSONObject jsonResult = new JSONObject();
try {
  jsonResult.put("clave", "valor");
  jsonResult.put("username", "iesous");
  jsonResult.put("password", "1234");

} catch (JSONException e) {
  // TODO Auto-generated catch block
 e.printStackTrace();
}

Log.d("DEV","jsonResult->"+jsonResult);

3
আপনার উত্তরটি ব্যাখ্যা করতে এবং ফর্ম্যাটটি উন্নত করার জন্য আপনার কাছে কিছু আখ্যান যুক্ত করা উচিত।
rghome

0
            Map<String, String> params = new HashMap<String, String>();

            //** Temp array
            List<String[]> tmpArray = new ArrayList<>();
            tmpArray.add(new String[]{"b001","book1"}); 
            tmpArray.add(new String[]{"b002","book2"}); 

            //** Json Array Example
            JSONArray jrrM = new JSONArray();
            for(int i=0; i<tmpArray.size(); i++){
                JSONArray jrr = new JSONArray();
                jrr.put(tmpArray.get(i)[0]);
                jrr.put(tmpArray.get(i)[1]);
                jrrM.put(jrr);
            }

           //Json Object Example
           JSONObject jsonObj = new JSONObject();
            try {
                jsonObj.put("plno","000000001");                   
                jsonObj.put("rows", jrrM);

            }catch (JSONException ex){
                ex.printStackTrace();
            }   


            // Bundles them
            params.put("user", "guest");
            params.put("tb", "book_store");
            params.put("action","save");
            params.put("data", jsonObj.toString());

           // Now you can send them to the server.

0
  public void DataSendReg(String picPath, final String ed2, String ed4, int bty1, String bdatee, String ed1, String cno, String address , String select_item, String select_item1, String height, String weight) {

      final ProgressDialog dialog=new ProgressDialog(SignInAct.this);
      dialog.setMessage("Process....");
      AsyncHttpClient httpClient=new AsyncHttpClient();
      RequestParams params=new RequestParams();
      File pic = new File(picPath);
      try {
          params.put("image",pic);
      } catch (FileNotFoundException e) {
          e.printStackTrace();
      }
      params.put("height",height);
      params.put("weight",weight);
      params.put("pincode",select_item1);
      params.put("area",select_item);
      params.put("address",address);
      params.put("contactno",cno);
      params.put("username",ed1);
      params.put("email",ed2);
      params.put("pass",ed4);
      params.put("bid",bty1);
      params.put("birthdate",bdatee);
      params.put("city","Surat");
      params.put("state","Gujarat");


      httpClient.post(WebAPI.REGAPI,params,new JsonHttpResponseHandler(){
          @Override
          public void onStart() {
              dialog.show();
          }

          @Override
          public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
              try {
                  String done=response.get("msg").toString();
                  if(done.equals("s")) {
                      Toast.makeText(SignInAct.this, "Registration Success Fully", Toast.LENGTH_SHORT).show();
                      DataPrefrenceMaster.SetRing(ed2);
                      startActivity(new Intent(SignInAct.this, LoginAct.class));
                      finish();
                  }
                  else  if(done.equals("ex")) {
                      Toast.makeText(SignInAct.this, "email already exist", Toast.LENGTH_SHORT).show();
                  }else Toast.makeText(SignInAct.this, "Registration failed", Toast.LENGTH_SHORT).show();
              } catch (JSONException e) {
                  Toast.makeText(SignInAct.this, "e :: ="+e.getMessage(), Toast.LENGTH_SHORT).show();
              }
          }

          @Override
          public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
              Toast.makeText(SignInAct.this, "Server not Responce", Toast.LENGTH_SHORT).show();
              Log.d("jkl","error");
          }

          @Override
          public void onFinish() {
                   dialog.dismiss();
        }
    });
}

এটি আপনার কোডের সাথে কিছু প্রসঙ্গের ব্যাখ্যা যুক্ত করতে সহায়তা করবে কারণ মনে হয় আপনি ভুল প্রশ্নের উত্তর
দিচ্ছেন

0
    httpClient.post("your api", params, new JsonHttpResponseHandler() {
        @Override
        public void onStart() {
            dialog.show();
        }

        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            try {
                JSONArray jsonArray=response.getJSONArray("data");
                for (int i = 0; i <jsonArray.length() ; i++) {
                    blootypelist1.add(jsonArray.getJSONObject(i).getString("email"));
                }
                ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_activated_1, blootypelist1);

                // Drop down layout style - list view with radio button

                // attaching data adapter to spinner
                listView.setAdapter(dataAdapter);
            } catch (JSONException e) {
                blootypelist1.clear();
                Toast.makeText(context, "No search user avelible", Toast.LENGTH_SHORT).show();
            }
        }

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