# Modifying JSON with YQL In memory, YQL operates on immutable values. Thus, when a query needs to change something inside a JSON value, the mindset should be about constructing a new value from pieces of the old one. This example query takes an input JSON named `$fields`, parses it, substitutes key `a` with 0, drops key `d`, and adds a key `c` with value 3: ```yql $fields = '{"a": 1, "b": 2, "d": 4}'j; $pairs = DictItems(Yson::ConvertToInt64Dict($fields)); $result_pairs = ListExtend(ListNotNull(ListMap($pairs, ($item) -> { $item = if ($item.0 == "a", ("a", 0), $item); return if ($item.0 == "d", null, $item); })), [("c", 3)]); $result_dict = ToDict($result_pairs); SELECT Yson::SerializeJson(Yson::From($result_dict)); ``` ## See also - [{#T}](../udf/list/yson.md) - [{#T}](../builtins/list.md) - [{#T}](../builtins/dict.md) - [{#T}](accessing-json.md)