2016-04-17 4 views
0

Я хочу создать JSon строку, как это из имеющихся данных,Android Создание JSON объект строки из данных

Json Строка:

{ 
    "1": { 
    "attendance_user_status": 1 
    }, 
    "2": { 
    "attendance_user_status": 0 
    }, 
    "3": { 
    "attendance_user_status": 1 
    }, 
    "4": { 
    "attendance_user_status": 1 
    }, 
    "5": { 
    "attendance_user_status": 1 
    }, 
    "6": { 
    "attendance_user_status": 0 
    }, 
    "7": { 
    "attendance_user_status": 1 
    }, ... 
} 

Я написал этот код Java ..

public String jsonCreator(ArrayList<Attendance> attendanceArrayList) throws JSONException { 
    JSONObject object = new JSONObject(); 
    JSONArray jsonArray = new JSONArray(); 
    for(int i = 0;i<attendanceArrayList.size();i++){ 
     JSONObject objId = new JSONObject(); 

     JSONObject objAtt = new JSONObject(); 
     objAtt.put("attendance_user_status",attendanceArrayList.get(i).getValue()); 

     objId.put(attendanceArrayList.get(i).getId(),objAtt); 
     jsonArray.put(objId); 
    } 
    object.put("user",jsonArray); 

    return object.toString(); 
} 

Но используя этот код, я получаю этот массив, но не так, как мне было нужно.

{ 
    "user": [ 
    { 
     "1": { 
     "attendance_user_status": "2" 
     } 
    }, 
    { 
     "2": { 
     "attendance_user_status": "1" 
     } 
    }, 
    { 
     "3": { 
     "attendance_user_status": "1" 
     } 
    }, 
    { 
     "4": { 
     "attendance_user_status": "1" 
     } 
    } 
    ] 
} 

Я хочу добавить объект json, но не массив json.

ответ

0

Вы никогда не инициализируете json любым, кроме String json = "";, поэтому пустая строка будет возвращена.

Вы должны получить строку из объекта json и установить ее на json. Выполните следующие действия в конце вашего метода:

json = objId.toString(); 
return json; 
0

Попробуйте так:

public String jsonCreator(ArrayList<Attendance> attendanceArrayList) throws JSONException { 
    JSONArray jsonArray = new JSONArray(); 
    for(int i = 0;i<attendanceArrayList.size();i++){ 
     JSONObject objId = new JSONObject(); 

     JSONObject objAtt = new JSONObject(); 
     objAtt.put("attendance_user_status",attendanceArrayList.get(i).getValue()); 

     objId.put(attendanceArrayList.get(i).getId(),objAtt); 
     jsonArray.put(objId); 
    } 

    return jsonArray.toString(); 
} 
+0

Я попробовал такие, но я хочу без Json Array. –

+0

как вы можете получить json из массива 'JSONObject' без' JSONArray'? –

Смежные вопросы