it-swarm.dev

Android- إنشاء JSON Array و JSON Object

كيف يمكنني إنشاء JSON بهذا التنسيق في Android: بما أن واجهة برمجة التطبيقات التي سأمررها ستقوم بتحليل JsonArray ثم الكائن. أو هل سيكون بخير إذا فقط لتمرير كائن json؟ حيث سيتعين علي فقط إدراج معاملة واحدة لكل مكالمة خدمة.

{
    "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. مثل هذه.

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();
}

أيه أفكار. شكر

108
sftdev

استخدم الكود التالي:

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);
275
Suji
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;
    }
25
Jitesh Upadhyay
 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());
5
Jai Kumar

لقد كنت تكافح مع هذا حتى اكتشفت الجواب:

  1. استخدم مكتبة GSON:

    Gson gson = Gson();
    String str_json = gson.tojson(jsonArray);`
    
  2. تمرير مجموعة json. وسوف يكون هذا السيارات stringfied. هذا الخيار يعمل تماما بالنسبة لي.

2
Simon Muthusi

في ما يلي إصدار أبسط (ولكن ليس قصير جدًا) لا يتطلب تجربة جذابة:

Map<String, String> data = new HashMap<>();
data.put("user", "[email protected]");
data.put("pass", "123");

JSONObject jsonData = new JSONObject(data);

إذا كنت ترغب في إضافة jsonObject إلى حقل ، يمكنك القيام بهذه الطريقة:

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

لسوء الحظ ، تحتاج إلى تجربة جذابة بسبب طريقة put ().

IFتريد تجنب تجربة المحاولة مرة أخرى (غير موصى به للغاية ، ولكن لا بأس إذا كنت تستطيع ضمان سلاسل json جيدة التنسيق) ، يمكنك القيام بهذه الطريقة:

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

يمكنك أن تفعل الشيء نفسه حول JsonArrays وهلم جرا.

في صحتك.

2
luizfelippe
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);
0
Jesús Flor Farias