package com.parse;

import com.parse.ParseObject;
import java.util.Iterator;
import org.json.JSONException;
import org.json.JSONObject;

/* JADX INFO: loaded from: classes.dex */
public class ParseObjectCoder {
    public static final ParseObjectCoder INSTANCE = new ParseObjectCoder();

    public <T extends ParseObject.State.Init<?>> T decode(T t, JSONObject jSONObject, ParseDecoder parseDecoder) {
        try {
            Iterator<String> itKeys = jSONObject.keys();
            while (itKeys.hasNext()) {
                String next = itKeys.next();
                if (!next.equals("__type") && !next.equals("className")) {
                    if (next.equals("objectId")) {
                        t.objectId(jSONObject.getString(next));
                    } else if (next.equals("createdAt")) {
                        t.createdAt(ParseDateFormat.INSTANCE.parse(jSONObject.getString(next)));
                    } else if (next.equals("updatedAt")) {
                        t.updatedAt(ParseDateFormat.INSTANCE.parse(jSONObject.getString(next)));
                    } else if (next.equals("ACL")) {
                        t.serverData.put("ACL", ParseACL.createACLFromJSONObject(jSONObject.getJSONObject(next), parseDecoder));
                        t.availableKeys.add("ACL");
                        t.self();
                    } else {
                        t.serverData.put(next, parseDecoder.decode(jSONObject.get(next)));
                        t.availableKeys.add(next);
                        t.self();
                    }
                }
            }
            return t;
        } catch (JSONException e) {
            throw new RuntimeException(e);
        }
    }

    public <T extends ParseObject.State> JSONObject encode(T t, ParseOperationSet parseOperationSet, ParseEncoder parseEncoder) {
        JSONObject jSONObject = new JSONObject();
        try {
            for (String str : parseOperationSet.keySet()) {
                jSONObject.put(str, parseEncoder.encode((ParseFieldOperation) parseOperationSet.get(str)));
            }
            if (t.objectId != null) {
                jSONObject.put("objectId", t.objectId);
            }
            return jSONObject;
        } catch (JSONException unused) {
            throw new RuntimeException("could not serialize object to JSON");
        }
    }
}
