在 Android 上克隆 JSONObject 的好方法

lig*_*igi 5 android json clone

我必须在 Android 上克隆一个 JSONObject。我知道简单的方法:

JSONObject clone = new JSONObject(original.toString());
Run Code Online (Sandbox Code Playgroud)

但不知何故,这样做感觉不对/很慢。我发现了这个:/sf/answers/896691911/,但在 Android 上我没有 JSONObject.getNames - 任何人都有关于如何做到这一点的好指针?

小智 0

你可以这样做:

public JSONObject shallowCopy(JSONObject original) {
    JSONObject copy = new JSONObject();

    for ( Iterator<String> iterator = original.keys(); iterator.hasNext(); ) {
        String      key     = iterator.next();
        JSONObject  value   = original.optJSONObject(key);

        try {
            copy.put(key, value);
        } catch ( JSONException e ) {
            //TODO process exception
        }
    }

    return copy;
}
Run Code Online (Sandbox Code Playgroud)

但请记住,这不是深复制。