Oddbean new post about | logout
 @f6217321 Yes, please! JSON support is built-in starting SQLite 3.38.0. As far as I know, this means iOS 16+, macOS 13.2+, tvOS 17+, and watchOS 9+. Those availabilities are a reasonable guess: I don't have any device to make sure they hold. Maybe you can check some of them? If you have a target device at hand,  you can run `select sqlite_version(), json('true’)`: it tells the SQLite version and fails at runtime if the JSON extensions are not built-in. 
 @8c08de26 In macOS BigSur 11.6 looks like the JSON extensions are available:
sqlite> select sqlite_version(), json('true');
3.32.3|true 
 @8c08de26 In macOS Monterey 12.6.2 I'm getting: 
sqlite> select sqlite_version(), json('true');
3.37.0|true 
 @f6217321 Oh, this one means that macOS 12.6 was shipping with JSON functions even before SQLite 3.38. That possibility was documented, but thanks for the conformation Martin ❤️ I'll be able to update the availability checks! 
 @8c08de26 Even macOS 11.6 had JSON extensions enabled.... 
 @8c08de26 Just check on macOS Catalina 10.15.7 and JSON extensions are available as well. 
sqlite> select sqlite_version(), json('true');
3.28.0|true 
 @f6217321 Oh, now this is a pretty old version of the JSON1 extension. Maybe not all JSON features are available 🤔 if you have some time, I'd be glad to help you gathering the availability of individual JSON SQL functions on various macOS versions! 
 @8c08de26 Sure. Send me the SQL statement to validate and I will run it on each OS version I have and report back in a concise table. 😉 
 @f6217321 Here is a gist that tests the presence of JSON functions: https://gist.github.com/groue/046ebddb4a410304094c022d756081c8 Unexpected results are reported as XCTest failures. I hope it will be handy for you! 
 @8c08de26 wow 👍thanks for that. Will package it, with a nice icon 😉, and run it on all our instances.