初めてFiddlerを使い、カスタムスクリプトでレスポンスを書き換えようと思ったのですが、うまくいかず苦労したのでメモを残します。
※もっと良い方法があれば教えていただきたいです
やりたかったこと
{
data: [
{
hoge: "abcde",
},
{
geho: "12345",
}
]
}
上記のレスポンスが来た時に、下記のように書き換えるようなことがしたかった
{
data: [
{
hoge: "abcde",
fuga: [ // ここから
{
hogehoge: "fugafuga"
},
{
hogehoge2: "fugafuga2"
},
] // ここまで追加
},
]
}
解決
static function OnBeforeResponse(oSession: Session) {
var response = Fiddler.WebFormats.JSON.JsonDecode(oSession.GetResponseBodyAsString());
response.JSONObject["data"][fuga] = Fiddler.WebFormats.JSON.JsonDecode('[{},{}]').JSONObject;
response.JSONObject["data"][fuga][0]["hogehoge"] = "fugafuga";
response.JSONObject["data"][fuga][1]["hogehoge2"] = "fugafuga2";
oSession.utilSetResponseBody(Fiddler.WebFormats.JSON.JsonDecode(response));
}