|
ちなみに、もしも、以下のように本来はちゃんと「エラーのないjsonデータ」になっ
ているのであれば、
-------------------------------------------------------
{
"root": [
{
"target_id": "2009",
"adv_name": " ",
"fist_line_text": "部屋で、",
"second_line_text": "寝る時間だからと",
"third_line_text": "自分の部屋に戻ろうとすると――。",
"voice_id": "",
"file_name": "advbg_005"
},
{
"target_id": "2009",
"adv_name": "虎",
"fist_line_text": "あのー…。",
"second_line_text": " 今夜は一緒に、寝ませんか?」",
"third_line_text": "",
"voice_id": "2009_05_h_1",
"file_name": "advbg_005"
},
{
"target_id": "2009",
"adv_name": " ",
"fist_line_text": "突然の申し出に少し驚く。",
"second_line_text": "僕は、",
"third_line_text": "少し考えた後、承諾する。",
"voice_id": "",
"file_name": "advbg_006"
}
]
}
-------------------------------------------------------
https://秀丸マクロ.net/?page=nobu_tool_hm_javascript でも使って
-------------------------------------------------------
#JS = loaddll( hidemarudir + @"\hmJS.dll");
#_ = dllfuncw( #JS, "DoString", R"JS(
// 今開いているテキスト全体をtext変数へ
var text = hm.Edit.TotalText;
// jsonとしてパースする
var jsdata = JSON.parse(text);
// root キーが存在すれば
if (jsdata["root"]) {
// root キーのデータの数を取得
var len = jsdata["root"].length;
// アウトプット枠に出力
hm.OutputPane.Output("全部で" + len + "件のデータを処理予定\r\n");
// 1回の処理ということにする(begin)
hm.Macro.Statement("begingroupundo");
// テキストエリアクリア
hm.Edit.TotalText = "";
// rootキーのvalueに相当するデータ配列の数ぶん...
for(var i=0; i<len; i++) {
// テキスト連結用
var last_data_json = "";
// 今のi番目のデータ
var current = jsdata["root"][i];
// 並び替えて連結する
last_data_json += current_data_format(current, "file_name");
last_data_json += current_data_format(current, "voice_id");
// last_data_json += current_data_format(current, "target_id");
last_data_json += current_data_format(current, "adv_name");
last_data_json += current_data_format(current, "fist_line_text");
last_data_json += current_data_format(current, "second_line_text");
last_data_json += current_data_format(current, "third_line_text");
last_data_json += "\n";
hm.Macro.Statement("insert", last_data_json );
}
// 1回の処理ということにする(end)
hm.Macro.Statement("endgroupundo");
}
// 1つのデータの出力の形
function current_data_format( current, key_name ) {
return "\"" + key_name + "\":\"" + current[key_name] + "\"\n";
}
)JS");
freedll(#JS);
-------------------------------------------------------
みたいいにしたほうが良いかと。
というかぶっちゃけ、ただのjsonデータの表示の置き換えなので
秀丸は全く関係ないので、秀丸以外でやったほうが早いかと。
|
|