【问题标题】:Convert object to Json-formatted string in Jscript .Net在 Jscript .Net 中将对象转换为 Json 格式的字符串
【发布时间】:2013-09-30 10:08:53
【问题描述】:

在 Fiddler 中,我有一个响应主体(应用程序/json),我使用 eval() 将其转换为对象(如果有更好的方法请告诉我)执行一些检查。现在我想将对象的几个部分(但不是所有部分)转换回字符串并将它们保存到单独的文件中。我将如何在 Jscript 中执行此操作?

我尝试过使用ToString() 方法,但它只返回[object Object]。有什么想法吗?

【问题讨论】:

    标签: fiddler jscript.net


    【解决方案1】:

    我有同样的问题,我问了 Fiddler 论坛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]);
    

    希望半年后能有所帮助……

    【讨论】:

      【解决方案2】:

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

      您可以使用适当的 .NET 程序集中的一个,也可以使用 Fiddler 中的 JSON 序列化程序;看看Fiddler.WebFormats.JSON.JsonEncode(object) 函数。

      【讨论】:

      • 它似乎不起作用。 Fiddler.WebFormats.JSON.JsonEncode(object) 用于 var oTest: Object = {"a":"b"}; 等对象时返回一个空字符串
      • 究竟向函数传递了什么?通常,您希望将oSesssion.GetResponseBodyAsString() 的值传递给JSON.JsonDecode(string),而不是让JScript.NET 执行它自己的eval()
      • 是的,这就是我传入的内容。这样做var oTest = Fiddler.WebFormats.JSON.JsonDecode(oSession.GetResponseBodyAsString()); var sTest = Fiddler.WebFormats.JSON.JsonEncode(oTest); 在我设置的简单测试页面上返回一个空字符串。
      • @EricLaw 在我的 FiddlerScript 中使用上述代码时,我收到以下错误:Type 'Fiddler.WebFormats.JSON.JsonDecode could not be found, is an assembly reference missing?我该如何解决这个问题?
      • 您运行的是最新版本的 Fiddler 吗?
      猜你喜欢
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2019-04-28
      • 1970-01-01
      • 2011-09-06
      相关资源
      最近更新 更多