2012-12-05 59 views
0

我正在開發一個使用ASP.NET MVC 4的應用程序,它涉及到Web API調用,我得到的特定記錄的結果是Json字符串。我做一個控制器的操作方法,我得到了這樣的電話,結果是在下面的表格內該網站的API調用:如何從Json中提取值字符串

result = "{\"fname\":\"John\",\"lname\":\"Doe\",\"empno\":123456,\"dept\":\"IT\"}" 

我是新來的MVC和JSON,並會真的就得到任何幫助我如何從這個Json字符串中提取特定值,例如dept的值?

謝謝。

+0

搜索寧靜的JSON WCF客戶端,您可以使用相同的JSONSerializer及解串器並轉換爲POCO的。 – SriN

+0

感謝您的快速回復。但是,我只是試圖從Json字符串中提取特定值,而不是嘗試從Json字符串實例化類的對象。在這個例子中,我只是在「IT」部門的價值之後。我希望我可以用只是一個簡單的代碼如結果[「部門」]做到這一點? – corix010

回答

1

爲了將此用作項目中的實際對象,您需要反序列化此字符串。 .NET有它自己的反序列化,或者你可以查看Json.Net,這很容易理解。檢查出的文檔上JsonConvert.DeserializeObject <> ...

即...

Instructor desInst = new Instructor(); 
responseContent = rsp.Content.ReadAsStringAsync().Result; 
desInst = JsonConvert.DeserializeObject<Instructor>(responseContent); 
+0

我很欣賞這種快速反應,但我只是在Json字符串中的特定值之後,就像這個例子中那樣,它的值是「IT」。我真的必須爲此創建一個課程嗎?有沒有一種方法可以讓結果[「部門」]或類似的東西?謝謝。 – corix010

+0

我對web api有點新,我自己。除了將其反序列化爲poco外,我從未做過任何其他操作,但它可能是可能的。我發現這個線程可能有幫助(雖然它看起來更復雜的IMO)http://stackoverflow.com/questions/1207731/how-can-i-deserialize-json-to-a-simple-dictionarystring-string-in-asp -淨。我認爲在使用它之前,你仍然必須使用Json.NET去反序列化。 –

+1

感謝您的鏈接。這真的有幫助。我最終使用的代碼:Dictionary values = JsonConvert.DeserializeObject >(json); – corix010