代码之家  ›  专栏  ›  技术社区  ›  davethecoder

asp.net mvc输出带有反斜杠(escape)的json,尽管尝试了很多次筛选

  •  2
  • davethecoder  · 技术社区  · 16 年前

    我有一个输出Json作为结果的asp.net控制器

    returnString += string.Format(@"{{""filename"":""{0}"",""line"":[", file.Filename);
    

    我得到的回报是:

    "{\"DPI\":\"66.8213457076566\",\"width\":\"563.341067\",\"editable\":\"True\",\"pricecat\":\"6\",\"numpages\":\"2\",\"height\":\"400\",\"page\":[{\"filename\":\"999_9_1.jpg\",\"line\":[]},{\"filename\":\"999_9_2.jpg\",\"line\":[]}]]"
    

    return Json(returnString);
    return Json(returnString.Replace("\\","");
    

    return Json将我的字符串序列化为Json字符串,我知道这一点,但它喜欢转义 不知为什么,我怎么才能摆脱它????

    关于信息,我用jQuery这样称呼它:

    $.ajax({
        url:"/Products/LoadArtworkToJSon",
        type:"POST",
        dataType: "json",
        async: false,
        data:{prodid: prodid },
        success: function(data){ 
            sessvars.myData = data;
            measurements = sessvars.myData;
            $("#loading").remove();
    
        //empty the canvas and create a new one with correct data, always start on page 0;
        $("#movements").remove();
        $("#canvas").append("<div id=\"movements\" style=\"width:" + measurements.width + "px; height:" 
                + Math.round(measurements.height) 
                + "px; display:block; border:1px solid black; background:url(/Content/products/" 
                + measurements.page[0].filename + ") no-repeat;\"></div>");
    

    谢谢

    1 回复  |  直到 16 年前
        1
  •  4
  •   Jerod Venema    16 年前

    编辑:尝试将对象传递给Json,而不是自定义字符串。你的线是 已经 在Json格式(ish)中,因此将其传递给Json就是对其重新编码。

    return Json(new { filename = "yourfilename" } );
    

    return "yourfilename";