我使用Newtonsoft.Json.Net20.dll
HTML
<div id="a" runat="server">
</div>
代码
string kb = "a";
string b= Newtonsoft.Json.JsonConvert.SerializeObject(kb).ToString();
a.InnerText = b;
在iis6上的本地主机中显示"a"
但是在网络秀上
G [!【U ^ӸSYL?qzZŔ?U1k)F] A(ݣ wN Q x . 0 = X y6 ? . r ~; [ t ~ / K z | -WźQ和放大器; 4BQ4oux | wrtLK $ Ms.4ٺ。 |。.sW $_ӗe54ȯ`6mk@ * byap4ZOa,2S jӪ. p n Y&gt; Ӽ͊ n |1~M z r } Qz 9 u i V0-ˑ!/ ST:乙升〜H [4 o' g / E = o 3G ގ} Yߝ| 〜 H Z ; i vrg z m ] Uh Z6&gt; [。 ) er I . . K_yȞF(C v Ha&gt;“s 4 gE G / A֓R 1 5MU&LT;ϊzZ jVM d x / \N ա b qo % $ l s?/
但
使用Newtonsoft.Json时
Dictionary<string, string> companyProducts = new Dictionary<string, string>();
companyProducts.Add("product" + item.IdProduct, item.NameProduct.ToString());
string JsonCompany = JavaScriptConvert.SerializeObject(companyProducts);
此代码工作正常。
当网站上传到互联网时添加新的参考。 足够复制dll到appcode
修改
在gloabal.asax中使用gzip
void Application_PreRequestHandlerExecute(object sender,EventArgs e) { HttpApplication app = sender作为HttpApplication; string acceptEncoding = app.Request.Headers [“Accept-Encoding”]; 流prevUncompressedStream = app.Response.Filter;
if (!(app.Context.CurrentHandler is Page ||
app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
app.Request["HTTP_X_MICROSOFTAJAX"] != null)
return;
if (acceptEncoding == null || acceptEncoding.Length == 0)
return;
acceptEncoding = acceptEncoding.ToLower();
if (acceptEncoding.Contains("gzip") )
{
// gzip
app.Response.Filter = new GZipStream(prevUncompressedStream,
CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "gzip");
}
else if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
{
// defalte
app.Response.Filter = new DeflateStream(prevUncompressedStream,
CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "deflate");
}
}
答案 0 :(得分:0)
有可能与JSON转换完全无关的内容是错误的,因为即使div
标记在页面源中也没有显示。
在二进制编辑器中分析响应会显示很多UTF-8序列EF BF BD
,即FFFD
字符{{1}}。当Unicode解码失败时使用此方法,很可能是因为您尝试使用错误的编码进行解码。
答案 1 :(得分:0)
您从该页面获取的文件是一个压缩文件,其中包含一个错误页面,但其中包含例外情况。为什么这样做我不知道。您的全局错误处理程序可能存在错误,导致它在没有正确标题的情况下发送压缩数据...
我假设您现在可以获取文件信息,因为您知道它是什么(我只是右键单击上面的链接然后使用7zip打开文件)。
关键点是:
源文件: c:\ inetpub \ vhosts \ iranfairco.com \ httpdocs \ test.aspx.cs 行: 20
[VerificationException: Operation could destabilize the runtime.]
Newtonsoft.Json.JsonWriter..cctor() +6
[TypeInitializationException: The type initializer for 'Newtonsoft.Json.JsonWriter' threw an exception.]
Newtonsoft.Json.JsonWriter..ctor() +0
Newtonsoft.Json.JsonTextWriter..ctor(TextWriter textWriter) +16
Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Formatting formatting, JsonSerializerSettings settings) +157
Newtonsoft.Json.JsonConvert.SerializeObject(Object value) +9
test.Page_Load(Object sender, EventArgs e) in c:\inetpub\vhosts\iranfairco.com\httpdocs\test.aspx.cs:20
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627