2013-09-30 40 views
2

中將對象轉換爲Json格式的字符串在Fiddler中,我使用eval()(如果有更好的方法,請讓我知道)將其轉換爲Object的響應正文(應用程序/ json)檢查。現在我想將對象的幾個部分(但不是全部)轉換回一個字符串並將它們保存到單獨的文件中。我如何在Jscript中做到這一點?在Jscript .Net

我試過使用ToString()方法,但它只返回[object Object]。有任何想法嗎?

回答

2

JScript.NET本身不包含JSON序列化程序。

您可以使用適當的.NET程序集中的一個,也可以使用JSON序列化器烘焙成Fiddler;看看Fiddler.WebFormats.JSON.JsonEncode(object)函數。

+0

這似乎並沒有工作。 'Fiddler.WebFormats.JSON.JsonEncode(object)'在像'var oTest:Object = {「a」:「b」}這樣的對象上使用時返回一個空字符串;' – Jowic

+0

你傳遞給功能?通常,您希望將'oSesssion.GetResponseBodyAsString()'的值傳遞給'JSON.JsonDecode(string)',而不是讓JScript.NET執行它自己的'eval()'。 – EricLaw

+0

是的,這是我通過。做這個'var oTest = Fiddler.WebFormats.JSON.JsonDecode(oSession.GetResponseBodyAsString());' var sTest = Fiddler.WebFormats.JSON.JsonEncode(oTest);''返回一個我在一個簡單的測試頁面上設置了空字符串。 – Jowic

3

我有同樣的問題,我問小提琴手論壇about it。 從答案,我做這個FiddlerScript(JScript中)回答你:

var sInput = '{"a" : 1, "b" : [2, 3, 4]}'; 
var oJSON = Fiddler.WebFormats.JSON.JsonDecode(sInput); 
FiddlerApplication.Log.LogFormat('input: {0}', sInput); 
FiddlerApplication.Log.LogFormat('oJSON: {0}', oJSON.ToString()); 
FiddlerApplication.Log.LogFormat('oJSON["a"]: {0} (expected: 1)', oJSON.JSONObject["a"]); 
FiddlerApplication.Log.LogFormat('oJSON["b"] : {0} (expected: 2)', oJSON.JSONObject["b"][0]); 

我希望半年後,這將有助於...