|
|
|
|
|
如果你正在調(diào)試輸出的 JSON 字符串,你是不是覺得那一串不間斷不換行的字符串很難讀?如果能輸出格式化的可讀性高的字符串,那將大大的提高調(diào)試效率。在本文中,我將介紹如何在 .NET 中美化 JSON 字符串。
通常情況下,JSON.NET 使 JSON 操作變得超級(jí)簡單——實(shí)際上它是一行代碼:
string jsonFormatted = JValue.Parse(json).ToString(Formatting.Indented);
測試方法如下:
[TestMethod]
public void PrettifyJsonStringTest()
{
var test = new
{
name = "rick",
company = "Westwind",
entered = DateTime.UtcNow
};
string json = JsonConvert.SerializeObject(test);
Console.WriteLine(json); // single line JSON string
string jsonFormatted = JValue.Parse(json).ToString(Formatting.Indented);
Console.WriteLine(jsonFormatted);
}
上面的代碼當(dāng)然是人為設(shè)計(jì)的,因?yàn)?code>SerializeObject()也支持Formatting.Indented
選項(xiàng)。但是暫時(shí)假設(shè)你正在從某個(gè)地方(例如 HTTP 流或磁盤上的文件)獲取字符串格式的數(shù)據(jù)。然后,你使用上面的代碼將其轉(zhuǎn)換為更具可讀性的內(nèi)容。
在實(shí)踐中,如果你有任何需要在 UI 中顯示 JSON 的界面,那就太好了。我顯示發(fā)送和捕獲的 HTTP 內(nèi)容,如果結(jié)果是 JSON,則默認(rèn)的Raw Response輸出如下所示:
可行但不完全可讀。
通過應(yīng)用格式化,確實(shí)可以更容易地看到 JSON 的實(shí)際外觀:
同樣,如果你正在處理具有.ToString()
返回 JSON 的方法的對象(就像許多在線 SDK 那樣?。?,最好有一種簡單的方法將結(jié)果格式化為更易讀的內(nèi)容,你可以將其轉(zhuǎn)儲(chǔ)到調(diào)試控制臺(tái)中。
這是一個(gè)不常需要的問題的簡單解決方案,也許這個(gè)可能對你們中的一些人也有用。
相關(guān)文章