[GH-ISSUE #536] Feature request: live filtering of json with jq syntax #533

Open
opened 2026-03-03 19:19:36 +03:00 by kerem · 18 comments
Owner

Originally created by @humblehacker on GitHub (Jun 29, 2020).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/536

Originally assigned to: @NghiaTranUIT on GitHub.

jq is a useful tool for filtering json. It would be a nice improvement to be able to filter down json response bodies by entering a short jq query string.

Originally created by @humblehacker on GitHub (Jun 29, 2020). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/536 Originally assigned to: @NghiaTranUIT on GitHub. [`jq`](https://stedolan.github.io/jq/) is a useful tool for filtering json. It would be a nice improvement to be able to filter down json response bodies by entering a short `jq` query string.
Author
Owner

@NghiaTranUIT commented on GitHub (Jul 2, 2020):

Hi, I suppose that when we support Scripting feature, it's good place to use jq as your need.

Basically, you can add JS script for filtering the content or Script to manipulate the Request/Response automatically.

<!-- gh-comment-id:653065676 --> @NghiaTranUIT commented on GitHub (Jul 2, 2020): Hi, I suppose that when we support Scripting feature, it's good place to use `jq` as your need. Basically, you can add JS script for filtering the content or Script to manipulate the Request/Response automatically.
Author
Owner

@nunogoncalves commented on GitHub (Jul 22, 2022):

Hi. I looove proxyman already. But with jq... boy would that be awesome!! Is this on the backlog? 🥺

<!-- gh-comment-id:1192843353 --> @nunogoncalves commented on GitHub (Jul 22, 2022): Hi. I looove proxyman already. But with jq... boy would that be awesome!! Is this on the backlog? 🥺
Author
Owner

@NghiaTranUIT commented on GitHub (Jul 23, 2022):

@humblehacker @nunogoncalves, It looks like jq syntax is similar to JSONPath, which Proxyman is already supported 👍

Screen_Shot_2021-08-01_at_10_29_35

Reference: https://docs.proxyman.io/basic-features/jsonpaths

<!-- gh-comment-id:1193021511 --> @NghiaTranUIT commented on GitHub (Jul 23, 2022): @humblehacker @nunogoncalves, It looks like `jq` syntax is similar to JSONPath, which Proxyman is already supported 👍 <img width="918" alt="Screen_Shot_2021-08-01_at_10_29_35" src="https://user-images.githubusercontent.com/5878421/180583315-4a05b90a-ce4f-4162-9588-602352d9ed55.png"> Reference: https://docs.proxyman.io/basic-features/jsonpaths
Author
Owner

@nunogoncalves commented on GitHub (Jul 23, 2022):

Oh! That's great! Thank you!

I never worked with JSONpath. But it look like it supports my main usecase which is filtering by multiple values. :)

Not wanting to be a pain in the ass, and sound ungrateful (trust me, I'm not :D I really love Proxyman - you make a fantastic job with this), would you mind still considering adding jq support? I mean, I'm much more used to it and probably there's more people out that on the same boat.

<!-- gh-comment-id:1193069531 --> @nunogoncalves commented on GitHub (Jul 23, 2022): Oh! That's great! Thank you! I never worked with JSONpath. But it look like it supports my main usecase which is filtering by multiple values. :) Not wanting to be a pain in the ass, and sound ungrateful (trust me, I'm not :D I really love Proxyman - you make a fantastic job with this), would you mind still considering adding `jq` support? I mean, I'm much more used to it and probably there's more people out that on the same boat.
Author
Owner

@NghiaTranUIT commented on GitHub (Jul 23, 2022):

@nunogoncalves From what I understand, jq and JSONPath are really similar. It also allows you to filter multiple values.

Since it might take time to implement the native jq lib (I did google, and unfortunately, there are no swift wrapper), I guess you should take a look at JSONPath example: https://docs.proxyman.io/basic-features/jsonpaths#path-examples


If it still doesn't fit you, can you give me some jq examples? I will find a way to translate it to JSONPath. I guess it can be simpler 😄

<!-- gh-comment-id:1193072639 --> @NghiaTranUIT commented on GitHub (Jul 23, 2022): @nunogoncalves From what I understand, `jq` and `JSONPath` are really similar. It also allows you to filter multiple values. Since it might take time to implement the native `jq` lib (I did google, and unfortunately, there are no swift wrapper), I guess you should take a look at JSONPath example: https://docs.proxyman.io/basic-features/jsonpaths#path-examples ------------- If it still doesn't fit you, can you give me some `jq` examples? I will find a way to translate it to `JSONPath`. I guess it can be simpler 😄
Author
Owner

@nunogoncalves commented on GitHub (Jul 23, 2022):

I was trying with JSONPath the following example which I can't seem to transport to JSONPath. But obviously it's a tool I just started playing with and I probably only couldn't find yet.

A simple example I was trying:
Given the following json:

[
  {
    "id": 1,
    "name": "Store A",
    "address": {
      "city": {
        "id": 112,
        "name": "Lisbon"
      },
      "country": {
        "id": 101,
        "name": "Portugal"
      }
    }
  },
  {
    "id": 2,
    "name": "Store B",
    "address": {
      "city": {
        "id": 112,
        "name": "Paris"
      },
      "country": {
        "id": 101,
        "name": "France"
      }
    }
  }
]

with the following jq query
[.[] | { name: .name, city: .address.city.name, country: .address.country.name }]
we would get:

[
  {
    "name": "Store A",
    "city": "Lisbon",
    "country": "Portugal"
  }, {
    "name": "Store B",
    "city": "Paris",
    "country": "France"
  }
]

Thank you so much for your help.

<!-- gh-comment-id:1193074613 --> @nunogoncalves commented on GitHub (Jul 23, 2022): I was trying with JSONPath the following example which I can't seem to transport to JSONPath. But obviously it's a tool I just started playing with and I probably only couldn't find yet. A simple example I was trying: Given the following json: ```json [ { "id": 1, "name": "Store A", "address": { "city": { "id": 112, "name": "Lisbon" }, "country": { "id": 101, "name": "Portugal" } } }, { "id": 2, "name": "Store B", "address": { "city": { "id": 112, "name": "Paris" }, "country": { "id": 101, "name": "France" } } } ] ``` with the following `jq` query `[.[] | { name: .name, city: .address.city.name, country: .address.country.name }]` we would get: ```json [ { "name": "Store A", "city": "Lisbon", "country": "Portugal" }, { "name": "Store B", "city": "Paris", "country": "France" } ] ``` Thank you so much for your help.
Author
Owner

@jjmean2 commented on GitHub (Nov 19, 2024):

I’d like to upvote this feature request. I believe jq is incredibly powerful—not only for filtering JSON values but also for reshaping data. It allows users to aggregate specific values from complex JSON structures, as @nunogoncalves demonstrated.

And additionally, It would be fantastic if the filtered results from jq (or even JSONPath) could be viewed not just in the Tree View but also in the JSON Text view.

Here’s an example of using a jq filter in a REST client application named "RapidAPI" (formerly known as “Paw”).

https://github.com/user-attachments/assets/494af215-f456-4d8d-84c1-4ccc7b768e5a

It’s convenient, but it’s REST client, so I need to send requests manually to use this feature in that application. If Proxyman could support this feature, I could filter real network traffic directly within the Proxyman, which would make for an excellent user experience.

Thank you for considering this!

<!-- gh-comment-id:2484628378 --> @jjmean2 commented on GitHub (Nov 19, 2024): I’d like to upvote this feature request. I believe jq is incredibly powerful—not only for filtering JSON values but also for reshaping data. It allows users to aggregate specific values from complex JSON structures, as @nunogoncalves demonstrated. And additionally, It would be fantastic if the filtered results from jq (or even JSONPath) could be viewed not just in the Tree View but also in the JSON Text view. Here’s an example of using a jq filter in a REST client application named "RapidAPI" (formerly known as “Paw”). https://github.com/user-attachments/assets/494af215-f456-4d8d-84c1-4ccc7b768e5a It’s convenient, but it’s REST client, so I need to send requests manually to use this feature in that application. If Proxyman could support this feature, I could filter real network traffic directly within the Proxyman, which would make for an excellent user experience. Thank you for considering this!
Author
Owner

@nunogoncalves commented on GitHub (Aug 22, 2025):

Hi! @NghiaTranUIT did you have time change to consider this again? :) 🥺

<!-- gh-comment-id:3213901807 --> @nunogoncalves commented on GitHub (Aug 22, 2025): Hi! @NghiaTranUIT did you have time change to consider this again? :) 🥺
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 22, 2025):

@nunogoncalves @jjmean2 Good news: I've successfully built jq into a static lib that I can use on macOS app.

All unit tests are passed I will implement the UI tonight and share you guys the Beta build 👍

<!-- gh-comment-id:3214582151 --> @NghiaTranUIT commented on GitHub (Aug 22, 2025): @nunogoncalves @jjmean2 Good news: I've successfully built jq into a static lib that I can use on macOS app. All unit tests are passed ✅ I will implement the UI tonight and share you guys the Beta build 👍
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 22, 2025):

@nunogoncalves @jjmean2 let's try this Beta: https://download.proxyman.io/beta/Proxyman_5.23.1_Support_jq_in_TreeView_Tab.dmg

You can use the jq in the TreeView Tab.

Image Image

I notice that it's hard to see the result in TREE View. I will bring this to the JSON Tab, so it can show as a text

<!-- gh-comment-id:3215387083 --> @NghiaTranUIT commented on GitHub (Aug 22, 2025): @nunogoncalves @jjmean2 let's try this Beta: https://download.proxyman.io/beta/Proxyman_5.23.1_Support_jq_in_TreeView_Tab.dmg You can use the `jq` in the TreeView Tab. <img width="735" height="321" alt="Image" src="https://github.com/user-attachments/assets/4651828f-8ec6-4bc4-8720-3838d0649dfe" /> <img width="709" height="333" alt="Image" src="https://github.com/user-attachments/assets/f5a28fd2-a1dc-4338-a347-02557be1a6b5" /> ---------- I notice that it's hard to see the result in TREE View. I will bring this to the JSON Tab, so it can show as a text
Author
Owner

@nunogoncalves commented on GitHub (Aug 23, 2025):

Yeah!! It works as expected. You're indeed right that it doesn't look amazing in TreeView. If you also add this in the JSON tab, will help. Very much appreciated!

Thank you very much for this! <3

<!-- gh-comment-id:3216615686 --> @nunogoncalves commented on GitHub (Aug 23, 2025): Yeah!! It works as expected. You're indeed right that it doesn't look amazing in TreeView. If you also add this in the JSON tab, will help. Very much appreciated! Thank you very much for this! <3
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 23, 2025):

@nunogoncalves @jjmean2 @humblehacker let's try this beta build: https://download.proxyman.io/beta/Proxyman_5.23.1_Add_json_filter_to_JSON_Tabs.dmg

  • Support jq
  • Add jq to the JSON Tab, so you can perform jq and display it as a JSON text

Image

<!-- gh-comment-id:3217308806 --> @NghiaTranUIT commented on GitHub (Aug 23, 2025): @nunogoncalves @jjmean2 @humblehacker let's try this beta build: https://download.proxyman.io/beta/Proxyman_5.23.1_Add_json_filter_to_JSON_Tabs.dmg - Support jq - Add jq to the JSON Tab, so you can perform jq and display it as a JSON text ![Image](https://github.com/user-attachments/assets/7ae7cb0a-ca66-4199-a16d-e171960a9814)
Author
Owner

@nunogoncalves commented on GitHub (Aug 24, 2025):

It works as expected! 🚀
Thank you very much!

<!-- gh-comment-id:3217995383 --> @nunogoncalves commented on GitHub (Aug 24, 2025): It works as expected! 🚀 Thank you very much!
Author
Owner

@NghiaTranUIT commented on GitHub (Aug 24, 2025):

Awesome, I will ship this feature in the next release 👍

<!-- gh-comment-id:3218013951 --> @NghiaTranUIT commented on GitHub (Aug 24, 2025): Awesome, I will ship this feature in the next release 👍
Author
Owner

@jjmean2 commented on GitHub (Aug 25, 2025):

Just tested it. It works great. Thanks!

<!-- gh-comment-id:3219885920 --> @jjmean2 commented on GitHub (Aug 25, 2025): Just tested it. It works great. Thanks!
Author
Owner

@NghiaTranUIT commented on GitHub (Sep 3, 2025):

New update

<!-- gh-comment-id:3249434318 --> @NghiaTranUIT commented on GitHub (Sep 3, 2025): ### New update - Beta: https://download.proxyman.io/beta/Proxyman_5.23.1_JQ_Filter_v2.dmg - Fixed race condition when filtering on 2 Tabs at the same time, the app might be crashes
Author
Owner

@nunogoncalves-jt commented on GitHub (Feb 27, 2026):

@NghiaTranUIT I'd like to ask if it's possible to have the jq filter available in json as well. It's much more comfortable to me to using it that view. Also, it would be awesome to keep the query alive when we change the request.

Select request 1, write query A
select request 2, write query B
select request 1, apply query A
and so on… it's very useful for debugging larger json to compare related data. Otherwise I have to keep pasting queries from one to the other.

Thank you! :)

EDIT: Sorry, I just remembered that we can add a JSON column. 😅 but the memory feature request still matters :)

<!-- gh-comment-id:3972190384 --> @nunogoncalves-jt commented on GitHub (Feb 27, 2026): @NghiaTranUIT I'd like to ask if it's possible to have the jq filter available in json as well. It's much more comfortable to me to using it that view. Also, it would be awesome to keep the query alive when we change the request. Select request 1, write query A select request 2, write query B select request 1, apply query A and so on… it's very useful for debugging larger json to compare related data. Otherwise I have to keep pasting queries from one to the other. Thank you! :) EDIT: Sorry, I just remembered that we can add a JSON column. 😅 but the memory feature request still matters :)
Author
Owner

@NghiaTranUIT commented on GitHub (Feb 27, 2026):

You can add the JSON Tab, it will have the jq filter on the body Editor (not Tree View)

For saving the filter query, I'm working on it https://github.com/ProxymanApp/Proxyman/issues/2617

<!-- gh-comment-id:3973356255 --> @NghiaTranUIT commented on GitHub (Feb 27, 2026): You can add the JSON Tab, it will have the jq filter on the body Editor (not Tree View) For saving the filter query, I'm working on it https://github.com/ProxymanApp/Proxyman/issues/2617
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Proxyman#533
No description provided.