[{"data":1,"prerenderedAt":181},["ShallowReactive",2],{"project-42609865":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":37,"post_text":39,"what":40,"said":59,"maker_in_thread":112,"shape":119,"grid":123,"attempts":143,"same_week":144,"maker_shows":34,"maker_hidden":173,"reader_version":174,"card":175},"42609865","SPath","SPath is a Rust lib for query JSONPath over any semi-structured data","title","Show HN: SPath is a Rust lib for query JSONPath over any semi-structured data","https:\u002F\u002Fgithub.com\u002Fcratesland\u002Fspath","github.com","tison",1736165026,2025,35,10,1536,3837,41,"shown","languages","rust library","library",[24,25,26,27],"jsonpath","rust","json query","semi-structured data","curious",0.048,{"positive":31,"neutral":32,"mixed":33,"critical":33},1,5,0,6,{"idea":36},{"positive":33,"critical":33},[38,38,38,33,38,33,33,32,38,33],3,null,{"problem":41,"audience":39,"pricing":39,"motivation":48,"time_to_build":39,"stack":52,"openness":58,"stage":58,"team_size":58},{"value":42,"source":43,"evidence":44},"Querying semi-structured data such as JSON values with JSONPath syntax","maker",[45],{"id":46,"by":11,"text":47},"42612234","Here are several points I have in mind: 1. JSONPath\u002FSPath supports multiple selector, e.g., $[\"a\", \"b\"] or $[1, 3:10:2, 101]. This may be a bit more tidy than dot or subscript.…",{"value":49,"source":43,"evidence":50},"Maker needed JSONPath syntax beyond JSON values for ScopeDB's variant type",[51],{"id":46,"by":11,"text":47},[53],{"value":54,"source":43,"evidence":55},"Rust",[56],{"id":57},"post","unknown",{"praise":60,"objections":69,"requests":79,"questions":87,"alternatives":92},[61],{"value":62,"source":63,"evidence":64},"Multiple selectors and descendant queries are useful additions","commenter",[65],{"id":66,"by":67,"text":68},"42617878","Klonoar","Nice, these are all solid and I appreciate it!",[70],{"value":71,"source":63,"evidence":72},"serde_json pointer calls may already cover the need",[73,76],{"id":74,"by":67,"text":75},"42610565","How is this better than just using serde_json’s ptr calls?",{"id":77,"by":67,"text":78},"42611612","You could do that with the pointer methods on serde_json::Value too.",[80],{"value":81,"source":63,"evidence":82},"Binary format support",[83],{"id":84,"by":85,"text":86},"42611398","mplanchard","Looks convenient! Do you plan to add binary?",[88],{"value":89,"source":63,"evidence":90},"How does it compare to serde_json ptr calls?",[91],{"id":74,"by":67,"text":75},[93,100,105],{"value":94,"source":63,"evidence":95},"Jsonata",[96],{"id":97,"by":98,"text":99},"42612619","elviejo","Have you looked at Jsonata? I think it is a more expressive language than jsonpath.",{"value":101,"source":63,"evidence":102},"serde_json pointer methods",[103,104],{"id":74,"by":67,"text":75},{"id":77,"by":67,"text":78},{"value":106,"source":63,"evidence":107},"XPath via XML conversion",[108],{"id":109,"by":110,"text":111},"42611763","err4nt","Any JSON-compatible data (and even some JavaScript data formats beyond strict JSON types) can be converted to an XML representation, have real XPath queries run on it, and the…",{"comments":113,"answered":113,"key":114},2,[115,116],{"id":46,"text":47},{"id":117,"text":118},"42612111","That's a good point. Tracked at https:\u002F\u002Fgithub.com\u002Fcratesland\u002Fspath\u002Fissues\u002F8. I think it would be done before I call a 1.0 release.",{"commenters":120,"max_depth":38,"maker_replies":113,"first_comment_mins":121,"lifespan_hours":122},7,113,13,[124,126,127,130,132,135,136,138,140,141],[97,33,38,125,98,33],"project\u002Fneutral\u002Fidea",[74,31,38,125,67,33],[128,31,38,125,129,33],"42610684","adamch",[77,31,33,131,67,33],"commenter\u002Fneutral\u002Fidea",[133,31,38,125,134,33],"42611493","necubi",[109,31,33,131,110,33],[46,31,33,137,11,31],"project\u002Fpositive\u002Fidea",[66,31,32,139,67,33],"maker\u002Fpositive\u002Fnone",[84,113,38,125,85,33],[117,113,33,142,11,31],"maker\u002Fneutral\u002Fnone",[],[145,150,155,160,165,169],{"id":146,"name":147,"points":148,"category":149},"42634787","Atlas of Space",770,"learning_science",{"id":151,"name":152,"points":153,"category":154},"42624116","Tramway SDK",660,"games",{"id":156,"name":157,"points":158,"category":159},"42585009","Pimosa",526,"creative",{"id":161,"name":162,"points":163,"category":164},"42635942","Stagehand",326,"dev_tools",{"id":166,"name":167,"points":168,"category":164},"42600586","CSS Flexbox Playground",315,{"id":170,"name":171,"points":172,"category":164},"42623593","HipScript",309,false,"v2",{"id":176,"name":5,"line":6,"ai":173,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":177,"top":18,"kw":178,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":179,"url":9,"mix":180,"praise":62,"objection":71,"sub":21},42609865,0.05,[24,25,26,27],"3330300530",[31,32,33,33],1794036667505]