Вы почти у цели! Найдите ниже быстрый фрагмент. Надеюсь, это поможет.
JsonNode node = mapper.readTree( "{\"First\":[{\"name\":\"Bill\",\"groupName\":\"team1\",\"groupType\":\"golf\",\"info\":[{\"name\":\"George\",\"groupName\":\"Caddy\"}],\"attending\":false},{\"name\":\"Fred\",\"groupName\":\"team2\",\"groupType\":\"golf\",\"info\":[{\"name\":\"Todd\",\"groupName\":\"caddy\"}],\"attending\":false},{\"name\":\"Mike\",\"groupName\":\"team3\",\"groupType\":\"golf\",\"info\":[{\"name\":\"Peter\",\"groupName\":\"caddy\"}],\"attending\":false}],\"Second\":[{\"name\":\"Alan\",\"groupName\":\"team4\",\"groupType\":\"golf\",\"info\":[{\"name\":\"Tony\",\"groupName\":\"caddy\"}],\"attending\":false}]}".getBytes() );
node.fields().forEachRemaining( entry -> System.out.println( "Key "+ entry.getKey() + " Value "+ entry.getValue()) );
Вывод:
Key First Value [{"name":"Bill","groupName":"team1","groupType":"golf","info":[{"name":"George","groupName":"Caddy"}],"attending":false},{"name":"Fred","groupName":"team2","groupType":"golf","info":[{"name":"Todd","groupName":"caddy"}],"attending":false},{"name":"Mike","groupName":"team3","groupType":"golf","info":[{"name":"Peter","groupName":"caddy"}],"attending":false}]
Key Second Value [{"name":"Alan","groupName":"team4","groupType":"golf","info":[{"name":"Tony","groupName":"caddy"}],"attending":false}]
Это классический случай rebase --onto
:
# let's go to current master (X, where quickfix2 should begin)
git checkout master
# replay every commit *after* quickfix1 up to quickfix2 HEAD.
git rebase --onto master quickfix1 quickfix2
Таким образом, вы должны перейти от
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
\
q2a--q2b (quickfix2 HEAD)
к:
q2a'--q2b' (new quickfix2 HEAD)
/
o-o-X (master HEAD)
\
q1a--q1b (quickfix1 HEAD)
Лучше всего это делать на чистом рабочем дереве.
См. git config --global rebase.autostash true
, особенно после Git 2.10 .
// on your branch that holds the commit you want to pass
$ git log
// copy the commit hash found
$ git checkout [branch that will copy the commit]
$ git reset --hard [hash of the commit you want to copy from the other branch]
// remove the [brackets]
Другие более полезные команды здесь с объяснением: Руководство Мерзавца
Вы можете использовать git cherry-pick
, чтобы просто выбрать коммит, который вы хотите скопировать.
Вероятно, лучший способ - создать ответвление от master, затем в этом ответвлении использовать git cherry-pick
на двух коммитах из quickfix2, которые вам нужны.
Я считаю, что это:
git checkout master
git checkout -b good_quickfix2
git cherry-pick quickfix2^
git cherry-pick quickfix2