簡體   English   中英

使用 Json.Net 處理數據中的換行符

[英]Handling newlines in data with Json.Net

有什么方法可以處理 JSON.NET 中的換行符。我有一些數據返回,其中包含回車換行符,而 Json.Net 只是將其保留在返回值中。 有沒有辦法強制 Json.Net 將其編碼為 Json。我假設默認情況下會發生這種情況,但它不會發生在我身上。 也許我還缺少其他東西。

如果重要的話,我在 MVC4 WebApi 項目中使用 Json.Net。

我的數據在字符串中返回 \r\n ,例如

  "Keywords": "These are my keywords.\r\n\r\n\r\nThis is a second line...\r\n\r\nThis is a third line. ...\r\n\r\n\r\nThis is a 4th line ..."

據我了解,那應該是\\r\\n 這可能是我返回的數據有問題,但我只是想看看 JSON.NET 應該用這個做什么。

對我來說,問題是即使序列化的 Json object 在調試器中看起來是正確的,當我將它寫入文件時它會添加所有這些文字(即添加反斜杠)。

它的作用是將獲得的 json 解析為Token ,然后使用該 token 代替。

例如:

// Serialize and convert to Token
string json = Newtonsoft.Json.JsonConvert.SerializeObject(someObject);
var token = JToken.Parse(json);

// Save to file
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(filepath, token);

老實說,我不明白為什么需要這樣做,或者是否有更好的解決方法。 感謝評論中的反饋。

您可以使用Formatting.Indented選項序列化對象。 像這樣:

string yourJsonString = JsonConvert.SerializeObject(yourObject,  Formatting.Indented, new JsonSerializerSettings { });

我認為這應該有效。

問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM