2012-11-13 44 views
0

目前,我有一個JSON文件的內容看起來像這樣:更新JSON文件C#W8發展

{ 
"username": "test", 
"someNumber": 100 
} 

我使用JSON.Net從網絡服務器獲取以.json文件 - C#:

 var http = new HttpClient(); 
     http.MaxResponseContentBufferSize = Int32.MaxValue; 
     var response = await http.GetStringAsync(URI); 

     var result = JsonConvert.DeserializeObject<DatClass.Result>(response); 

這與工作良好的類一起獲取/設置屬性。 但是,我想知道的是,是否有一種好方法讓用戶通過文本框UI更新.JSON文件? 在:

[文本框 - 更新用戶名] [更新按鈕] - >用戶名發送到服務器 - > .JSON文件更新 - > [文本塊 - 顯示UI中更新的用戶名]。

我不是在尋找確切的代碼解決方案,我寧願在這方面尋找好的解決方案,和/或如果這是一個簡單的數據庫(?)的可怕想法。

+0

連載更新對象連接和覆蓋文件 – Fixus

+0

那麼,這是存儲信息的好方法嗎?似乎沒有太多的文檔涉及到實際使用JSON作爲能夠非常更新的「數據庫」。一直在看着Azure數據庫,但它似乎像大多數開發人員不應該在他們的應用程序中使用它,因爲Metro應用程序不應該有直接的數據庫連接..(?) – AndreasB

回答

1

好的。現在我明白了:)

所以你想擁有一個數據庫。然後閱讀這個。 3種方法

  1. 你的方式。你想使用JSON文件。好吧,它會工作,但這是一個不好的方法。如果你有1MB的文件(它不是那麼大)比每次你必須讀取它,反序列化,更新數據,序列化和再次寫入。這不是一個好方法。

  2. SQLite。如果你想要一個本地數據庫使用SQLite。我處於測試階段,看起來不錯。缺點是可憐的orm。你需要自己管理一些事情,但它很好。這是一個本地數據庫,所以它不是一個壞的路要走

  3. Azure DB。主要缺點是您的應用程序依賴於Internet連接,您需要創建一個API來提供與數據庫的連接,因爲Windows Store應用程序無法通過它們自己連接到它們。你還需要考慮創建緩存引擎,因爲每次都是毫無意義的。您可以獲取數據並緩存一些視圖。這樣的應用程序的運行速度更快

//編輯

在更新的情況下

你有2個解決方案

  1. 使用SQLite作爲一個規模較小的本地緩存來自網絡的數據。它會使你的應用更加獨立於互聯網連接
  2. 只要進入互聯網dependend應用

在所有這些情況下,您需要在網站分貝和一些API與它

+0

1.是的,我也考慮過這一點。特別是當文件變大,並且需要數據連接來獲取JSON時,它可能會變成一個昂貴的應用程序。 2.我看過SQLite - 你到目前爲止的想法是什麼?並且能夠將這個(DB文件)同步到服務器上嗎?我希望應用程序在Windows 8和Windows Phone之間可以同步,以便將更多設置保存在數據庫中,然後提取到正在使用的平臺上。 3.我想我會去SQLite然後:)! – AndreasB

+0

@AndrewB準確。如果你想擁有本地數據庫或Azure數據庫,我建議使用SQLite如果網絡連接的成本和需求對你來說不是問題 – Fixus

+0

啊,更新以前的帖子在這裏並沒有太出色! ::我看過SQLite - 你到目前爲止的想法是什麼?並且能夠將這個(DB文件)同步到服務器上嗎?我希望應用程序在Windows 8和Windows Phone之間可以同步,以便將更多設置保存在數據庫中,然後提取到正在使用的平臺上。 – AndreasB