2017-01-03 2 views
2

Как хранить объект JSON, который содержит список в общем предпочтении объекта Json как:Android Json Shared предпочтения

{ 
     "id": 6, 
     "name": "1-B", 
     "section": "B", 
     "batchCode": "1-2015-2016-B", 
     "courseId": 1, 
     "sessionId": 2, 
     "course": null, 
     "startDate": "2015-03-31", 
     "endDate": "2016-03-30" 
    }, 
    { 
     "id": 5, 
     "name": "1-A", 
     "section": "A", 
     "batchCode": "1-2015-2016-A", 
     "courseId": 1, 
     "sessionId": 2, 
     "course": null, 
     "startDate": "2015-03-31", 
     "endDate": "2016-03-30" 
    }, 

Как получить данные при хранении в общих perfernces

+1

формат кода. – Godwin

+0

ссылка http://stackoverflow.com/questions/5918328/is-it-ok-to-save-a-json-array-in-sharedpreferences – sajan

ответ

1
  • Преобразования JSONObject в строку

String myJson = jsonObject.toString();

  • Теперь хранить это является общим предпочтение

editor.putString("MY_JSON", myJson); 
 
    editor.commit();

0

Просто преобразовать JSON в строку и хранить в ключе, как это:

Editor editor = sharedpreferences.edit(); 
editor.putString("json_key", "value"); 
editor.commit(); 

И затем, чтобы вернуть вас г JSON это сделать:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 
    String storedJson= preferences.getString("json_key", null); 
3

1. конвертироватьjsonObject в String

String yourString = jsonObject.toString();

2. Сохранить это

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("YOURKEY",yourString ); 
editor.commit(); 

3. Получить это

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
    String name = prefs.getString("YOURKEY", null);//If there is no YOURKEY found null will be the default value. 
    } 
1

Во время хранения данных вы должны сделать так.

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("JsonDataKey", yourJsonData); 
editor.commit(); 

и для получения JSon

снабжать струной, тетивой и т.п.
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null); 
if (restoredText != null) { 
    String josnData = prefs.getString("JsonDataKey", "nothing"); 
} 
0

Создать POJO как:

public class JsonObj { 
String id = ""; 
String name = ""; 
String section = ""; 
String batchCode = ""; 
String courseId = ""; 
String sessionId = ""; 
String course = ""; 
String startDate = ""; 
String endDate = ""; 

public String getId() { 
    return id; 
} 

public void setId(String id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getSection() { 
    return section; 
} 

public void setSection(String section) { 
    this.section = section; 
} 

public String getCourseId() { 
    return courseId; 
} 

public void setCourseId(String courseId) { 
    this.courseId = courseId; 
} 

public String getBatchCode() { 
    return batchCode; 
} 

public void setBatchCode(String batchCode) { 
    this.batchCode = batchCode; 
} 

public String getSessionId() { 
    return sessionId; 
} 

public void setSessionId(String sessionId) { 
    this.sessionId = sessionId; 
} 

public String getCourse() { 
    return course; 
} 

public void setCourse(String course) { 
    this.course = course; 
} 

public String getStartDate() { 
    return startDate; 
} 

public void setStartDate(String startDate) { 
    this.startDate = startDate; 
} 

public String getEndDate() { 
    return endDate; 
} 

public void setEndDate(String endDate) { 
    this.endDate = endDate; 
} 

}

Помните - сделать необходимое разборе.

Затем создайте следующий класс

public class SettingPreferences { 
public static void setJsonObjValueInPref(Context context, 
             String prefKey, JsonObj jsonObj) { 
    Editor editor = context.getSharedPreferences(PREFS_NAME, 
      Context.MODE_PRIVATE).edit(); 
    Gson gson = new Gson(); 
    String json = gson.toJson(jsonObj); 
    editor.putString(prefKey, json); 
    editor.commit(); 

} 

public static JsonObj getJsonObjValueFromPref(
     Context context, String prefKey, String defValue) { 

    SharedPreferences preferences = context.getSharedPreferences(
      PREFS_NAME, Context.MODE_PRIVATE); 
    Gson gson = new Gson(); 
    String jsonData = preferences.getString(prefKey, ""); 
    Type type = new TypeToken<ObjProfileDetails>() { 
    }.getType(); 
    JsonObj jsonObj = new JsonObj(); 
    jsonObj = gson.fromJson(jsonData, type); 
    return jsonObj; 

} 

}

убедитесь, что у добавлении этой строки -

dependencies { 

compile 'com.google.code.gson:gson:2.2.4' 

}

0

Вы можете использовать Gson как это: -

Добавить зависимость: -

compile 'com.google.code.gson:gson:2.2.4' 

При сохранении данных: -

Gson gson; 
gson = new Gson(); 

try { 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     String json = gson.toJson(yourArrayList); 
     editor.putString("jSonData", json); 
     editor.commit(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

При получении данных: -

String markers1 = mPrefs.getString("jSonData", null); 
     if (markers1 != null) { 
      java.lang.reflect.Type type = new TypeToken<ArrayList<String>>() { 
      }.getType(); 
      newArrayList = gson.fromJson(markers1, type); 
     } 
0
Try this 

магазин

SharedPreferences.Editor editor = getSharedPreferences("MY_PREFS_NAME", MODE_PRIVATE).edit(); 
editor.putString("jsonKEY","Your values from json parsing" ); 
editor.commit(); 

Получить его

SharedPreferences prefs = getSharedPreferences("MY_PREFS_NAME", MODE_PRIVATE); 
String name = prefs.getString("jsonKEY", null); 
0

Преобразование JsonArray в строку, вызвав следующий код

JsonArray json = // object 

сохранить его в SharedPreferences

try { 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     String string new Gson().toJson(json); 
     editor.putString("jSonData", string); 
     editor.commit(); 
} catch (Exception e) { 
     e.printStackTrace(); 

}

получить его обратно!

Gson g = new Gson(); 
String result = mPrefs.getString("jSonData",null) 
g.fromJson(result, JsonArray.class);