Имеем: JSONObject o1 = { "one": "1", "two": "2", "three": "3" } JSONObject o2 = { "four": "4", "five": "5", "six": "6" } В результате слияния o1 и o2 должны получить: JSONObject result = { "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6" } Один из вариантов - использвать иторатор по keys, и пока hasNext - добавлять поле по ключу в новый объект. Ищу более красивый способ. Note - Ключи в o1 и o2 повторяться не могут.
Ответ
Я пришел к тому, что наилучшим решением будет использования иторатора jsonObject.keys() и ручной сборки результурующего объекта.
public JSONObject mergeJsonObjects(JSONObject o1, JSONObject o2) {
JSONObject result = new JSONObject();
Iterator i1 = o1.keys();
Iterator i2 = o2.keys();
String tmp_key;
while (i1.hasNext())
{
tmp_key = (String) i1.next();
try {
result.put(tmp_key, o1.get(tmp_key));
}catch (JSONException ignored){}
}
while (i2.hasNext())
{
tmp_key = (String) i2.next();
try {
result.put(tmp_key, o2.get(tmp_key));
}catch (JSONException ignored){}
}
return result;
}
upd:
public JSONObject mergeJsonObjects(ArrayList
Комментариев нет:
Отправить комментарий