Запись строки json в файл с помощью Windows Script Host - PullRequest
1 голос
/ 08 сентября 2011


Я пытаюсь написать строку json, которую я зашифровал, используя https://github.com/douglascrockford/JSON-js/blob/master/json2.js (JSON.stringify),

Я пытаюсь сохранить строку и получаю сообщение об ошибке:

Ошибка выполнения Microsoft JScript: недопустимый вызов процедуры или аргумент

в

var textStream = fileObj.OpenAsTextStream(ForWriting, TristateFalse); 

это мой код:

var pref = JSON.parse(textPref);
textPref = JSON.stringify(pref);
WSH.echo(textPref)

// Create the new file.
fso.CreateTextFile("d:\\Preferences_temp", true);
var fileObj = fso.GetFile("d:\\Preferences_temp");
var textStream = fileObj.OpenAsTextStream(ForWriting, TristateFalse); <- Microsoft JScript Runtime Error: Invalid procedure call or argument
textStream.Write(textPref);
textStream.Close();

1 Ответ

3 голосов
/ 08 сентября 2011

Константы, которые вы передаете методам FSO, не отображаются при позднем связывании с new ActiveXObject, поэтому вам нужно определить их независимо;

var ForWriting = 2;
var TristateFalse = 0;

Редактировать

var ForWriting = 2;
var TristateTrue = -1;

var textPref = '{"xxx": "AA \u05D5 BB"}';

var pref = JSON.parse(textPref);
textPref = JSON.stringify(pref)

// Create the new file.
var fso = new ActiveXObject("Scripting.FileSystemObject");

//create as unicode
fso.CreateTextFile("c:\\null\\Preferences_temp", true, true);
var fileObj = fso.GetFile("c:\\null\\Preferences_temp");

//open for unicode
var textStream = fileObj.OpenAsTextStream(ForWriting, TristateTrue);
textStream.Write(textPref);
textStream.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...