{"title":"JSON Transformer","nodeType":"Manipulator","id":"*wcERuaxFYqiU2d-0","factoryName":"org.knime.json.node.patch.apply.JSONPatchApplyNodeFactory","factoryId":"org.knime.json.node.patch.apply.JSONPatchApplyNodeFactory","path":["Structured Data","JSON"],"owner":"knime","ownerAccountId":"account:team:b5f0848f-496d-4e6a-b869-fa3532248db7","description":"<p>Applies a <a href=\"http://tools.ietf.org/html/rfc6902\" rel=\"ugc nofollow noopener noreferrer\">patch</a> or a <a href=\"http://tools.ietf.org/html/rfc7386\" rel=\"ugc nofollow noopener noreferrer\">merge patch</a> on the input JSON column.</p>\n            <p>When a (merge) patch cannot be applied, missing values will be generated, node execution will not fail.</p>\n            <p>See also the node: <a href=\"https://hub.knime.com/knime/extensions/org.knime.features.json/latest/org.knime.json.node.patch.create.JSONPatchCreateNodeFactory\" rel=\"ugc nofollow noopener noreferrer\">JSON Diff</a> .</p>\n            <p>Given <tt>{&#34;a&#34;:&#34;b&#34;,&#34;c&#34;:{&#34;d&#34;:&#34;e&#34;,&#34;f&#34;: &#34;g&#34;} }</tt> let us assume the target is <tt>{&#34;a&#34;:&#34;z&#34;,&#34;c&#34;:{&#34;d&#34;:&#34;e&#34;} }</tt> (changing <tt>a</tt> &#39;s value to <tt>z</tt> and removing <tt>f</tt> ). To achieve this, either the following patch should be applied: <tt>[{&#34;op&#34;:&#34;replace&#34;,&#34;path&#34;:&#34;/a&#34;,&#34;value&#34;:&#34;z&#34;},{&#34;op&#34;:&#34;remove&#34;,&#34;path&#34;:&#34;/c/f&#34;}]</tt> or this merge and patch: <tt>{&#34;a&#34;:&#34;z&#34;,&#34;c&#34;:{&#34;f&#34;: null} }</tt></p>\n            <p>The following operators ( <tt>op</tt> ) are supported for patch:</p><ul><li><tt>add</tt> ( <tt>path</tt> , <tt>value</tt> )</li><li><tt>remove</tt> ( <tt>path</tt> )</li><li><tt>replace</tt> ( <tt>path</tt> , <tt>value</tt> )</li><li><tt>move</tt> ( <tt>from</tt> , <tt>path</tt> )</li><li><tt>copy</tt> ( <tt>from</tt> , <tt>path</tt> )</li><li><tt>test</tt> ( <tt>path</tt> , <tt>value</tt> )</li></ul>\n            \n            <p>The merge and patch format reconstructs the parts that need to be changed (changes included), all else can be omitted.</p>\n            <p>It uses the <a href=\"https://github.com/fge/json-patch\" rel=\"ugc nofollow noopener noreferrer\">fge/json-patch</a> implementation.</p>\n                    \n            <p>To refer to flow variables, use the <tt>$${TflowVarName}$$</tt> syntax (where <tt>T</tt> is <tt>S</tt> for String type, <tt>D</tt> for floating point numbers and <tt>I</tt> for integer numbers).</p>\n                    \n            <p>To refer to columns (boolean, numeric, String, JSON), use the <tt>$columnName$</tt> syntax.</p>\n                    \n            <p>References to ( <tt>0</tt> -based) row index ( <tt>$$ROWINDEX$$</tt> ), row count ( <tt>$$ROWCOUNT$$</tt> ) and row keys ( <tt>$$ROWID$$</tt> ) can also be used in values.</p>\n                    \n        \n        ","shortDescription":"Applies a patch on the input JSON column.","keywords":[],"deprecated":false,"streamable":true,"tags":["Structured Data","JSON","Streamable"],"icon":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRDY1QjVFRjRGMTFFNUJCQTVFNkU1RjA4Rjk4QjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRDY1QjZFRjRGMTFFNUJCQTVFNkU1RjA4Rjk4QjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVENjVCM0VGNEYxMUU1QkJBNUU2RTVGMDhGOThCMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVENjVCNEVGNEYxMUU1QkJBNUU2RTVGMDhGOThCMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrEnGBIAAALRSURBVHjafFNdSFNhGH7P2XHn7M9tbhPScJaRmzZpNOsminSmqaOfra6i8Ca6iChBwlGQYHZTTunKW2+DhUTeFEHYxYgIMi21MM3IanPu53jOdnbO1nump4ZILzx853zf+zzf+/cR8M80iKs0TV82Go1Ou92e93g8M263e8pisQT9fn9GdioUClBqxNZag5hEciOSoRQOhwNcLleU47jDvb29SzsJyDe/RXKDTDCZTIA3glar/StSV1cHoij+TiQSe0KhEFcqQCKuKeSenh4YHx/ng8HgIP4PKAK5XA6QXJlOp/tgm5FIvig7+Xw+CAQCwLLsE/y+Ew6H7+L+Y/lMr9dDMpmEVCp1absAJRdMdvJ6vUUnRFg5jFZ/165qF4FkMNOjuCFIe/2POueyqeyJZ7dfrhYjUMLU6XSKQJF8brTjA2WHTvP+cijTUkBSBJRX68HmqKjXmJml7qHWg0oEC4hGmSjnimvX2VC711ClP0CSJLDzPBRmy+DL7AromtQJq8ukt9Zb1NFPsSnkG1ROp7MCBVpsNhtks1lZwL1m+NlUvtug4r5mwDxfBe/fTEMiloCVdz8GdnmsYzgM52kjQ9c0V32TUxhGfI7H48XwsdqgolVqLp6B2OsURCIRJbU5xOhE3/Nwls2xmAaUMdQVEqvNoUAbhvsRh6XoTGBzC1Ie0glWIc8iOjruHb9+Zrj9BpY0T5DFGdTIcwAjIyPLOECHamtr+7FlCzleAk2FBkxHdDwS+xDNmN4ypVbdZMrVDzFCA3YCJEGaILaP5mYHTr2y7DMf42JcPv1rw/f01otJef/CWHfG5rDQeTEP0bk1gV/P6EjYwQRWaIsvrscFTiwo76X7fmuAMTF0sfcUCRRDUWq9emjHCAhi8411DbZQODDi1lzMVDZYG6VcHvg4X8iyQkbkxcX/CpTa6Qcnk1h1UcpJEWEj14/C0/L+HwEGAAvwRZX0AvxyAAAAAElFTkSuQmCC","views":[],"inPorts":[{"objectClass":"org.knime.core.node.BufferedDataTable","color":"000000","dataType":"Table","optional":false,"name":"table with JSON","description":"A table with JSON column to transform"}],"outPorts":[{"objectClass":"org.knime.core.node.BufferedDataTable","color":"000000","dataType":"Table","optional":false,"name":"table with JSON","description":"Table with the transformed JSON values"}],"dynInPorts":[],"dynOutPorts":[],"additionalSiteInformation":{"url":"https://update.knime.com/analytics-platform/5.12","trusted":true,"enabledByDefault":true,"name":"KNIME Analytics Platform 5.12 Update Site","version":"5.12.0"},"dialog":[{"fields":[{"name":"JSON column","description":"The column containing JSON values","optional":false},{"name":"Remove source column","description":"When checked, the source column will be removed","optional":false},{"name":"New column","description":"Name of the new (JSON) column","optional":false},{"name":"Patch type","description":"Either <a href=\"http://tools.ietf.org/html/rfc6902\" rel=\"ugc nofollow noopener noreferrer\">patch</a> or a <a href=\"http://tools.ietf.org/html/rfc7386\" rel=\"ugc nofollow noopener noreferrer\">merge and patch</a>","optional":false},{"name":"Keep original value when 'test' operation fails","description":"When there are failing &#39;test&#39; operations, the original value is kept instead of inserting a missing value (and a warning is issued).","optional":false},{"name":"Patch","description":"A JSON of the selected patch type compatible with the JSON values. The patch expression must either be a single JSON Patch expression (object) or an array of JSON Patch expressions.","optional":false}]}],"links":[],"kudos":[{"accountId":"account:user:c5b46139-af80-4a51-8039-8dc8221e1d79","user":"dr_snglr","date":"2020-11-14T16:16:59+00:00"}],"kudosCount":1,"bundleInformation":{"bundleVersion":"5.12.0.v202605291551","bundleName":"JSON related functionality for KNIME","bundleSymbolicName":"org.knime.json","bundleVendor":"KNIME AG, Zurich, Switzerland","featureSymbolicName":"org.knime.features.json","featureName":"KNIME JSON-Processing","featureVersion":"5.12.0.v202605291551","featureVendor":"KNIME AG, Zurich, Switzerland","extensionId":"*M6ImzgljvpBKaP13"},"frequentSuccessors":[{"id":"*C1zA3UfdJepeh0eb","factoryName":"org.knime.json.node.combine.row.RowCombineJsonNodeFactory","probability":0.13924050632911392},{"id":"*DOkyMaii62U05xZ1","factoryName":"org.knime.base.node.preproc.filter.column.DataColumnSpecFilterNodeFactory","probability":0.0759493670886076},{"id":"*jDedZ_onUp4c833B","factoryName":"org.knime.rest.nodes.post.RestPostNodeFactory","probability":0.06329113924050633},{"id":"*2xUDt4Z24aku4wiS","factoryName":"org.knime.json.node.totable.JSONToTableNodeFactory","probability":0.06329113924050633},{"id":"*AApA5VHd41CVDe7u","factoryName":"org.knime.base.node.meta.looper.LoopEndNodeFactory","probability":0.0379746835443038},{"id":"*uVmaGQkzUOFCTqUe","factoryName":"org.knime.base.node.preproc.pmml.missingval.compute.MissingValueHandlerNodeFactory","probability":0.0379746835443038},{"id":"*xCgldu0u0nsCPEFk","factoryName":"org.knime.json.node.writer.JSONWriterNodeFactory","probability":0.0379746835443038},{"id":"*xsMeCA0QgX92370E","factoryName":"org.knime.json.node.fromtable.TableToJsonNodeFactory","probability":0.0379746835443038},{"id":"*ZgYyOm1P9VJVBE9e","factoryName":"org.knime.base.node.preproc.joiner.Joiner2NodeFactory","probability":0.02531645569620253},{"id":"*CLf1dnRUyl2myKc_","factoryName":"org.knime.base.node.flowvariable.appendvariabletotable2.AppendVariableToTable2NodeFactory","probability":0.02531645569620253}]}
