/*
 * Copyright 2011 the original author or authors.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.jayway.jsonpath;

public interface WriteContext {

    
Returns the configuration used for reading
Returns:an immutable configuration
/** * Returns the configuration used for reading * * @return an immutable configuration */
Configuration configuration();
Returns the JSON model that this context is operating on
Returns:json model
/** * Returns the JSON model that this context is operating on * * @return json model */
<T> T json();
Returns the JSON model that this context is operating on as a JSON string
Returns:json model as string
/** * Returns the JSON model that this context is operating on as a JSON string * * @return json model as string */
String jsonString();
Set the value a the given path
Params:
  • path – path to set
  • newValue – new value
  • filters – filters
Returns:a document context
/** * Set the value a the given path * * @param path path to set * @param newValue new value * @param filters filters * @return a document context */
DocumentContext set(String path, Object newValue, Predicate... filters);
Set the value a the given path
Params:
  • path – path to set
  • newValue – new value
Returns:a document context
/** * Set the value a the given path * * @param path path to set * @param newValue new value * @return a document context */
DocumentContext set(JsonPath path, Object newValue);
Replaces the value on the given path with the result of the MapFunction.
Params:
  • path – path to be converted set
  • mapFunction – Converter object to be invoked
  • filters – filters
Returns:a document context
/** * Replaces the value on the given path with the result of the {@link MapFunction}. * * @param path path to be converted set * @param mapFunction Converter object to be invoked * @param filters filters * @return a document context */
DocumentContext map(String path, MapFunction mapFunction, Predicate... filters);
Replaces the value on the given path with the result of the MapFunction.
Params:
  • path – path to be converted set
  • mapFunction – Converter object to be invoked (or lambda:))
Returns:a document context
/** * Replaces the value on the given path with the result of the {@link MapFunction}. * * @param path path to be converted set * @param mapFunction Converter object to be invoked (or lambda:)) * @return a document context */
DocumentContext map(JsonPath path, MapFunction mapFunction);
Deletes the given path
Params:
  • path – path to delete
  • filters – filters
Returns:a document context
/** * Deletes the given path * * @param path path to delete * @param filters filters * @return a document context */
DocumentContext delete(String path, Predicate... filters);
Deletes the given path
Params:
  • path – path to delete
Returns:a document context
/** * Deletes the given path * * @param path path to delete * @return a document context */
DocumentContext delete(JsonPath path);
Add value to array

List array = new ArrayList(){{
     add(0);
     add(1);
}};
JsonPath.parse(array).add("$", 2);
assertThat(array).containsExactly(0,1,2);

Params:
  • path – path to array
  • value – value to add
  • filters – filters
Returns:a document context
/** * Add value to array * * <pre> * <code> * List<Integer> array = new ArrayList<Integer>(){{ * add(0); * add(1); * }}; * * JsonPath.parse(array).add("$", 2); * * assertThat(array).containsExactly(0,1,2); * </code> * </pre> * * @param path path to array * @param value value to add * @param filters filters * @return a document context */
DocumentContext add(String path, Object value, Predicate... filters);
Add value to array at the given path
Params:
  • path – path to array
  • value – value to add
Returns:a document context
/** * Add value to array at the given path * * @param path path to array * @param value value to add * @return a document context */
DocumentContext add(JsonPath path, Object value);
Add or update the key with a the given value at the given path
Params:
  • path – path to object
  • key – key to add
  • value – value of key
  • filters – filters
Returns:a document context
/** * Add or update the key with a the given value at the given path * * @param path path to object * @param key key to add * @param value value of key * @param filters filters * @return a document context */
DocumentContext put(String path, String key, Object value, Predicate... filters);
Add or update the key with a the given value at the given path
Params:
  • path – path to array
  • key – key to add
  • value – value of key
Returns:a document context
/** * Add or update the key with a the given value at the given path * * @param path path to array * @param key key to add * @param value value of key * @return a document context */
DocumentContext put(JsonPath path, String key, Object value);
Renames the last key element of a given path.
Params:
  • path – The path to the old key. Should be resolved to a map or an array including map items.
  • oldKeyName – The old key name.
  • newKeyName – The new key name.
  • filters – filters.
Returns:a document content.
/** * Renames the last key element of a given path. * @param path The path to the old key. Should be resolved to a map * or an array including map items. * @param oldKeyName The old key name. * @param newKeyName The new key name. * @param filters filters. * @return a document content. */
DocumentContext renameKey(String path, String oldKeyName, String newKeyName, Predicate... filters);
Renames the last key element of a given path.
Params:
  • path – The path to the old key. Should be resolved to a map or an array including map items.
  • oldKeyName – The old key name.
  • newKeyName – The new key name.
Returns:a document content.
/** * Renames the last key element of a given path. * @param path The path to the old key. Should be resolved to a map * or an array including map items. * @param oldKeyName The old key name. * @param newKeyName The new key name. * @return a document content. */
DocumentContext renameKey(JsonPath path, String oldKeyName, String newKeyName); }