当方でも同様の結果となりました。名前を設定した場合、拡張子名が txt や xml だと保存されますが、json はなぜかダメ。代わりの手段としてシェルスクリプトで保存しようとしたら Shortcuts.app がクラッシュ...。
また、名前を設定せずにサブパスを指定すると拡張子名が強制的に txt になるのも確認できました。アクションの説明に記載がないので何とも言えませんが、これは仕様かもしれません。
JSON 文字列の保存不可問題と、サブパス指定で txt しか指定できない問題を Apple にフィードバックしてはどうでしょうか。
で、当面はこんな感じで JavaScript for Automation で保存してみるとか。fname と dname のところは適宜書き換えてください。
JavaScript for Automation のコード
'use strict';
function run(argv) {
const string = $(argv[0].toString());
const fname = $('test.json');
const dname = $('~/Desktop/dir').stringByExpandingTildeInPath;
const fpath = dname.stringByAppendingPathComponent(fname);
const data = string.dataUsingEncoding($.NSUTF8StringEncoding);
const err = $();
const opts = $.NSDataWritingAtomic;
if (! data.writeToFileOptionsError(fpath, opts, err)) {
throw new Error(err.localizedDescription.js);
}
}
# 動作確認: Parallels Desktop 18 上の Sequoia 15.0.1
# スクリーンショットを追加しました