moyna coder Ответов: 1

Как правильно клонировать объект JSON в другой .


Я пытаюсь скопировать один json say json1 в другой json say json2. Кажется, что значения перезаписываются, т. е. если я помещаю значение в один ключ, скажем key1 из json1. значение key1 json2 будет перезаписано.

Что я уже пробовал:

Работает :
JSONObject json1 = новый JSONObject();
json1.пут("а",новый JSONObject().пут("с",1)).пут("Б","2");
JSONObject json2 = новый JSONObject();
Итератор itr = json1. keys (); / / копирование json из источника в destinationJson
пока(ИТР.hasNext()) {
Строку ключ = (строки) ИТР.далее();
json2.поставить(ключ, json1.вам(ключ));
}
json1. put("b", 3);
out. print("json1" +json1);
out. print("json2" +json2);

здесь значение b не было перезаписано .

но если поместить значение в c. Его переписывают. кажется, что два JSON разделяют одну и ту же память.

JSONObject subjson = json1. getJSONObject("a");
subjson. put("a", 2);
out. print("json1" +json1);
out. print("json2" +json2);

Так как же я могу ее решить? : (..

1 Ответов

Рейтинг:
0

Member 13136157

Вы говорите о глубоком и поверхностном клонировании. Вот еще информация. Понимание клонирования объектов в Javascript-Part. I[^]

function naiveShallowCopy( original )  
{
    // First create an empty object
    // that will receive copies of properties
    var clone = {} ;

    var key ;

    for ( key in original )
    {
        // copy each property into the clone
        clone[ key ] = original[ key ] ;
    }

    return clone ;
}


moyna coder

Прошу на Яве

moyna coder

и это я уже пробовал .