Мне нужно получить доступ и провести серию операций над большим json-объектом. Некоторые вещи, которые мне нужно читать и изменять очень глубоко в дерево с путями, такими как:Создать строковый ключ для сложного пути json
result.project.properties[0]['hudson.model.ParametersDefinitionProperty'][0].parameterDefinitions[0]['hudson.model.BooleanParameterDefinition']
Этот путь является то, что я буду ссылаться снова и снова. Я хотел бы быть в состоянии сделать что-то вроде:
key = "project.properties[0]['hudson.model.ParametersDefinitionProperty'] [0].parameterDefinitions[0]['hudson.model.BooleanParameterDefinition']"
так что я могу потом читать и писать или на пути, как это:
result[key]
но узел даже не работает с:
result['project.properties']
гораздо меньше всей глубокой дорожки, которую я должен использовать.
Есть ли хороший способ сделать путь многоразовым без необходимости вводить все это более одного раза?
правый, но не по справке. «shortResult» будет просто копией BooleanParameterDefinition, поэтому изменения в ней будут применяться только к этой копии, а не к исходному объекту json. Поэтому мне по существу пришлось бы снова напечатать этот весь адрес объекта json, чтобы установить его равным shortResult. Это то, чего я надеюсь избежать. – kcgolden
Я ошибся. shortResult оказывается ссылкой на эту точку в объекте, поэтому написание «shortResult =» означает то же самое, что печатать весь путь и устанавливать его равным чему-то, поэтому ваш ответ работает. Я действительно написал это решение, прежде чем задал вопрос, но только сделал предположение, что он не сработает. Извини за это. – kcgolden