2011-09-08 28 views
1


我想寫我的字符串化使用https://github.com/douglascrockford/JSON-js/blob/master/json2.js(JSON.stringify)JSON字符串,寫作JSON字符串文件中使用Windows腳本宿主

我想保存字符串,我得到一個錯誤:

Microsoft JScript Runtime Error: Invalid procedure call or argument

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(); 
+2

你是什麼錯誤? –

+1

Microsoft JScript運行時錯誤:無效的過程調用或參數 – Yosi

回答

3

傳遞給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(); 
+0

我沒有發佈所有代碼,我在代碼中也使用了這些常量 – Yosi

+0

寫入代碼適合我, 'textStream.Write('blah');'工作?如果不是它可能是一個文件訪問問題 –

+0

是的,它的工作原理,你是否試圖寫json字符串到他們的? – Yosi

相關問題