2015-09-26 18 views
0

我需要將鍵值對存儲在字符串中。我不能將它們存儲在任何其他類型中,因爲我傳遞這些值的函數接受一個名爲additionalData的參數,它的類型是字符串。創建使用鍵值對的字符串並通過鍵提取值

string data = "FirstName: Mike, LastName: Jones, UserId: 101" 

然後,我需要能夠檢索基於密鑰的每個值。

我可以做這樣的事情,然後做的string.join檢索時創建一個數組,但不希望因爲我想用鍵值:

string data = string.Format("{0}|{1}|{2} ", "Mike", "Jones", 101) 

回答

2
User user = new User { 
    FirstName = "Mike", 
    LastName = "Jones", 
    UserId = 101 
}; 
string userJson = JsonConvert.SerializeObject(user); 

您可以創建用戶對象,並使用https://www.nuget.org/packages/Newtonsoft.Json/

後來當你要反序列化解析成JSON,您可以使用下面的代碼:

User user = JsonConvert.DeserializeObject<User>(userJson); 

希望它能幫助。

+0

出於某種原因,我認爲我被困,但忘了我可以簡單地創建一個客戶用戶對象並使用Json。我不喜歡這裏的事情是我已經有一個名爲User的業務實體,我不想傳遞它的所有屬性,所以我不確定我會在UI層中調用這個對象。 –

+0

您也可以使用Json.NET序列化一個匿名類型。請參閱http://www.newtonsoft.com/json/help/html/CreateJsonAnonymousObject.htm – dbc

+0

這取決於您使用的是哪個UI層。如果你正在開發Web應用程序,一個用例是你想做一個Ajax調用。另一個例子是你想公開一個原生移動應用程序的Web服務來調用。 –

1

傳遞一個知名的,正規格式可以輕鬆地進行序列化和反序列化,如XML或JSON。