JSONをテキストでごりごり書くのが面倒になってきたので、
直接変換するコードを書いた。

function CJsonWriter(){
  }
  CJsonWriter.prototype=
  {
    _crlf_enable:true,
    SetCrlfEnabled:function(i_flag){
      this._crlf_enable=i_flag;
    },
    //i_objectをi_nameという名前のJSON文字列へ変換する
    ToJsonString:function(i_object,i_name)
    {
      var rt=this._crlf_enable?
:;
      return i_name+:+this._Value2Json(i_object);
    },
    _Object2Json:function(i_obj,is_array)
    {
      var result=;
      var is_first=true;
      for(var i in i_obj){
        if(!is_first){
          result+=,;
        }
        if(!is_array){
          result+="+i+":;
        }
        result+=this._Value2Json(i_obj[i]);
        is_first=false;
      }
      return result;
    },
    _Value2Json:function(i_obj)
    {
      var rt    =this._crlf_enable?
:;
      switch(typeof i_obj)
      {
      case number:
      case boolean:
        return i_obj+rt;
      case string:
        return "+i_obj.split(").join(")+"+rt;
      case object:
        if(i_obj==null){
          return null+rt;
        }else if(i_obj instanceof Array){
          return [+rt+this._Object2Json(i_obj,true)+]+rt;
        }else{
          return {+rt+this._Object2Json(i_obj,false)+}+rt;
        }
      default:
        throw "JsonConvert failed!";
      }
    }
  }

使い方

  var test={
    a:false,
    b:100,
    d:{
      r:[0,1,false],
      f:"""""""""""""""""
    },
    e:null,
    f:[1,2,3,[a,b,c],{at:1,at2:2}]
  }
  var t=new CJsonWriter();
  t.SetCrlfEnabled(true);
  alert(t.ToJsonString(test,"test"));