考慮類Node
。使用Newtonsoft將其轉換爲JSON。c# - Newtonsoft - 自定義排序IEnumerable屬性 - JSON
class Node {
IList<Node> Nodes { get; }
}
我目前正在執行默認的排序邏輯 -
class Node : IComparable<Node> {
IList<Node> Nodes { get; }
public int CompareTo(Node node) {
// some default sorting logic
}
}
Newtonsoft,而使用它序列化,並在相同的邏輯來分類的節點給予JSON。
string jsonString = JsonConvert.SerializeObject(
deserializedObject,
Formatting.None,
new JsonSerializerSettings
{
// some settings
});
問:現在,我要像IComparer
傳遞給JsonConvert.SerializeObject()
方法,使JSON應該有節點集合中的一個新的排序邏輯。
以某種方式,我想讓調用者自由地按照他們的方式對集合進行排序,而不是默認的集合,否則將會使用這種集合。
不知道是否有一個簡單的方法呢?有什麼建議嗎?
可以提供自由,一旦你反序列化對象,用戶可以使用自定義的IComparer重新安排項目在列表中 –
以某種方式,我想在獲取JSON時執行此操作。這是非常大的JSON(〜75 MB),我們不想涉及反序列化成本,並再次序列化,因爲最終用戶需要JSON。 – Prakhar
然後,在對象序列化爲Json之前,您需要一個自定義排序機制,以此作爲用戶輸入,轉換爲自定義DS,進行比較和重新排序,然後再發送序列化的Json數據 –