【问题标题】:How to save a JSONObject in onSaveInstanceState?如何在 onSaveInstanceState 中保存 JSONObject?
【发布时间】:2014-05-22 08:24:36
【问题描述】:

我对 JSONObject 有疑问,因为我不知道如何保存它。 我不想每次都从文件中加载它,因为之后 JSONObject 将被更改,而且每次活动恢复时加载文件似乎都浪费资源。我该怎么做?

private JSONParser jParser;
private JSONObject jObj;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(savedInstanceState == null){
        jParser = new JSONParser();
        setjObj(jParser.getJSONFromFile(this));
    }
    else {
           // savedInstanceState.get(jObj);
    }

}

@Override
protected void onSaveInstanceState(Bundle outState) {

    // outState.put(jObj); 

    super.onSaveInstanceState(outState);
}

【问题讨论】:

  • 可以在outState(json.toString())中放一个json的String。然后您可以在需要时将 String 转换为 JSONObject

标签: android save restore


【解决方案1】:

// 插入

savedInstanceState.putString("myJSON", myJsonObject.toString());

// 读取

try {
        String jsonString = savedInstanceState.getString("myJSON");
        JSONObject myObj = new JSONObject(jsonString);
} catch (JSONException e) {
    e.printStackTrace();
}

【讨论】:

    猜你喜欢
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多