You have to escape those quotes and usually these methods work (I would use option 1)
Names Default To Here(1);
// user_sql ="select json_value(feature, '$."ball dimension"') as ball_dimension from blah";
// Option 1
user_sql1 = "\[select json_value(feature, '$."ball dimension"') as ball_dimension from blah]\";
// Option 2
user_sql2 = "select json_value(feature, '$.\!"ball dimension\!"') as ball_dimension from blah";
// Print demo
Write("\!N" || user_sql1);
Write("\!N" || user_sql2);
https://www.jmp.com/support/help/en/18.0/#page/jmp/jsl-syntax-rules.shtml - Look for Double Quotes
Edit:
Just to add extra some explanation. If you want have double quotes in your string in JMP, you have to escape them (there are also other characters which must be escaped). You can escape single double quote by replacing it with \!" and if you wish to "auto-escape" everything in your string, wrap it with "\[...]\" instead of just "...".
-Jarmo