我有一個名爲DataItem的類,它有三個屬性:Id,DataValue和CreatedDateTime。這些屬性按照從上到下的順序在類中定義。這也是我希望看到我的JSON導出中的屬性的順序。問題是DataItem對象中的屬性和JSON導出中的屬性按字母順序排序。儘管這種格式在技術上沒有任何問題,但這是一個可讀性問題。如何控制JSON導出中屬性的順序?如何控制我的JSON輸出中的屬性順序?
我檢查了dataItem wen實例化和屬性按字母順序列出。這沒關係,我瞭解不按字母排序屬性的潛在可用性問題。
public static List<DataItem>GetAllDataItems()
{
List<DataItem> dataItems = new List<DataItem>();
SqlConnection conn = NetduinoDb.GetConnection();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "Select Id, DataValue, CreatedDateTime from XXX";
cmd.CommandType = CommandType.Text;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
DataItem dataItem = new DataItem
{
Id = reader["Id"].ToString(),
DataValue = reader["DataValue"].ToString(),
CreatedDateTime = reader["CreatedDateTime"].ToString()
};
dataItems.Add(dataItem);
}
reader.Close();
conn.Close();
return dataItems.ToList();
}
此方法在我的服務實現中,並返回DataItems的列表。我想我需要在這裏做點什麼,但不知道是什麼或如何。
public List<DataItem> GetCollection()
{
return DataRetriever.GetAllDataItems();
}
爲什麼您向我們展示大量不相關的代碼,並且不顯示重要的代碼,即您將對象序列化到JSON的位置?另外,爲什麼命令對你很重要? JSON主要是爲了被其他程序讀取,而不是由人類讀取。 – svick 2012-02-15 02:46:54
@svick - 沒有太多代碼可以顯示。無論相關與否,這就是我們所擁有的。我沒有序列化任何東西以顯示在那裏。就訂單而言,這正是我們想要的。看看WCF REST多項目模板,因爲這基本上就是我們正在做的事情。 – DenaliHardtail 2012-02-15 03:26:07
可能重複[WCF DataContract DataMember order?](http://stackoverflow.com/questions/3816478/wcf-datacontract-datamember-order) – JNF 2015-06-25 13:57:23