如何在序列化JSON字符串之前转义&符号

时间:2016-10-26 15:01:38

标签: c# json serialization

我有我的购物车对象,我正在序列化将其扔进一个cookie。一切正常。但是当我在另一边反序列化时,我得到了这个错误:

  

Newtonsoft.Json.JsonReaderException:未终止的字符串。预期定界符:“。路径'ShoppingCart [0] .productName',第1行,第221位。

我已经确定错误会被放在&符号上。

我的序列化代码如下所示:

 string myObjectJson =JsonConvert.SerializeObject( cart );

我的反序列化代码:

csm = JsonConvert.DeserializeObject<CartSummaryModel>( myCookie.Values[ "Cart" ] );

我尝试将HttpUtility.HtmlEncode放在JsonConvert前面,但这并不是我想做的。

在运行序列化之后,这是我的完整字符串:

  

{ “购物车”:[{ “productIDs”:[], “productNames”:[], “productPrices”:[], “productDescriptions”:[], “imref”: “24251”, “intDBQty”: 172,“isFrozen”:false,“ProdId”:“2063”,“productName”:“Family Inspriration Gift Bags包括Tissue&amp; Gift Tags,Set of 5”,“productPrice”:14.0,“ProductDesc”:“\”特别礼物,适合特别的人!\“这些鼓舞人心的礼品袋非常适合包装中小型礼品。包括白色纸巾,礼品标签和安全绳索手柄.8 \”L x 4 3/4 \“W x 10 1/2 \“H。 Set of 5“,”productQuantity“:1}],”TotalQty“:1,”SubTotalCost“:14.0,”TotalCost“:22.0,”TotalDiscount“:0.0,”ReferralCode“:”“,”ReferralEmail“:”“ “TotalShipping”:8.0 “FreeShipMin”:70.0, “TotalProcessing”:0.0 “ShipText”:“预估船 “ ”TotalTax“:0.0, ”TaxText“:” 预估。税”, “OERef”: “”, “CartNum”: “”, “消息”: “”, “LowQuantity”:假 “HasFrozen”:假}

1 个答案:

答案 0 :(得分:3)

将对象转换为JSON字符串后使用  HttpUtility.UrlEncode(myObjectJson)以及反序列化时使用HttpUtility.UrlDecode(myCookie.Values["Cart"])