我想解析api調用返回的JSON數據。 價值的部分可能有雙重qutoes指示以英寸爲單位的項目大小。 例如:「description」:「size is 7」x 8「...」(我截斷了字符串。)JSON:用雙引號引起的問題
json.net解析該值時拋出異常。 我在Json noob,在C#有點生疏。 我無法弄清楚如何解決這個問題。
這裏是我使用的代碼。我正在清理任何html標籤,並設置下面的設置參數。我已經研究了很多,但谷歌是不是因爲太多的結果,幫助使用像JSON解析亞太經社會等
string value = WebUtility.HtmlDecode(reader.ReadToEnd());
value = Regex.Replace(value, "<.+?>", string.Empty);
JsonSerializerSettings set = new JsonSerializerSettings();
set.StringEscapeHandling = StringEscapeHandling.Default;
set.StringEscapeHandling = StringEscapeHandling.EscapeHtml;
set.StringEscapeHandling = StringEscapeHandling.EscapeNonAscii;
myo = JsonConvert.DeserializeObject<myboject>(value,set);
「description」:「size is 7」x 8「...」不是有效的JSON,所以JsonConvert無法解析它。在JSON中的雙引號必須用反斜線轉義 - 例如「description」:「size is 7 \」x 8 \「...」。爲什麼你必須清理HTML標籤? JSON不應該包含HTML標籤。確定API正在返回JSON? – shf301
是的,我認爲HtmlDecode調用是搞砸了。如果有的話,反序列化JSON,然後html解碼或編碼各個屬性值。 – ps2goat
謝謝。數據實際上是不好的。它編碼了html實體。所以我不得不解碼,然後使用正則表達式來刪除html標籤。我嘗試過各種方法,但最好是使用正則表達式去除html標籤。 – user697697