Single equals in filter assigns value · Issue #210 · JSONPath-Plus/JSONPath · GitHub
Skip to content

Single equals in filter assigns value #210

Description

@v-mwalk

Describe the bug

A filter erroneously using a single equals in a comparison filter modifies the filtering property in the target object.

Code sample or steps to reproduce

const originalJSON = {
        testing: [
          { test: "hello1", prop1: "bye1",  prop2: "day1" },
          { test: "hello2", prop1: "bye2",  prop2: "day2" },
          { test: "hello3", prop1: "bye3",  prop2: "day3" },
        ],
      };

const filteredJSON = JSONPath({path: '$.testing[?(@.test="hello2"].prop1',json: originalJSON, resultType" 'all'}); // Note single equals in filter

//
// originalJSON now contains;
//        testing: [
//          { test: "hello2", prop1: "bye1",  prop2: "day1" },
//          { test: "hello2", prop1: "bye2",  prop2: "day2" },
//          { test: "hello2", prop1: "bye3",  prop2: "day3" },
//        ],
//      };
//
//

Expected behavior

As the filter is errored, would expect an exception to be thrown, for handling by the caller.

Environment (IMPORTANT)

  • JSONPath-Plus version: 8.0.1

Desktop**

  • OS: Mac
  • Node 19.8.1

Additional context

Can also be repo'd at jsonpath.com evaluator

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions