{"action":"created","issue":{"url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/700","labels_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/700/labels{/name}","comments_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/700/comments","events_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/700/events","html_url":"https://github.com/JamesNK/Newtonsoft.Json/issues/700","id":114087315,"number":700,"title":"Precompiled token queries","user":{"login":"OlduwanSteve","id":809808,"avatar_url":"https://avatars.githubusercontent.com/u/809808?v=3","gravatar_id":"","url":"https://api.github.com/users/OlduwanSteve","html_url":"https://github.com/OlduwanSteve","followers_url":"https://api.github.com/users/OlduwanSteve/followers","following_url":"https://api.github.com/users/OlduwanSteve/following{/other_user}","gists_url":"https://api.github.com/users/OlduwanSteve/gists{/gist_id}","starred_url":"https://api.github.com/users/OlduwanSteve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlduwanSteve/subscriptions","organizations_url":"https://api.github.com/users/OlduwanSteve/orgs","repos_url":"https://api.github.com/users/OlduwanSteve/repos","events_url":"https://api.github.com/users/OlduwanSteve/events{/privacy}","received_events_url":"https://api.github.com/users/OlduwanSteve/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-10-29T16:19:14Z","updated_at":"2015-11-23T09:04:33Z","closed_at":"2015-11-23T07:36:12Z","body":"Looking at the implementation of SelectToken, it parses the path into a JPath object then calls Evaluate. I have a use-case where I'll be running the same query on many different Json blobs, so I'd rather not do the work of parsing the query every time.\r\n\r\nIt seems like one approach would be to make JPath public, but I accept you may have had reasons for keeping it internal.\r\n\r\nIt would be *really* nice if I could pre-define the JPath object and perform a sort of 'streaming' parse that skips elements which don't match, and builds the query result on the fly.\r\n\r\nJust making JPath public would be a great first step though, thanks for reading!"},"comment":{"url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/comments/158880849","html_url":"https://github.com/JamesNK/Newtonsoft.Json/issues/700#issuecomment-158880849","issue_url":"https://api.github.com/repos/JamesNK/Newtonsoft.Json/issues/700","id":158880849,"user":{"login":"OlduwanSteve","id":809808,"avatar_url":"https://avatars.githubusercontent.com/u/809808?v=3","gravatar_id":"","url":"https://api.github.com/users/OlduwanSteve","html_url":"https://github.com/OlduwanSteve","followers_url":"https://api.github.com/users/OlduwanSteve/followers","following_url":"https://api.github.com/users/OlduwanSteve/following{/other_user}","gists_url":"https://api.github.com/users/OlduwanSteve/gists{/gist_id}","starred_url":"https://api.github.com/users/OlduwanSteve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlduwanSteve/subscriptions","organizations_url":"https://api.github.com/users/OlduwanSteve/orgs","repos_url":"https://api.github.com/users/OlduwanSteve/repos","events_url":"https://api.github.com/users/OlduwanSteve/events{/privacy}","received_events_url":"https://api.github.com/users/OlduwanSteve/received_events","type":"User","site_admin":false},"created_at":"2015-11-23T09:04:33Z","updated_at":"2015-11-23T09:04:33Z","body":"Fair enough. I'm using JSON Path because I need to define the queries as data. For now that's much more important than the slight perf hit so I'll stick with it as it is."}}