2017-04-26 17 views
-2

我有JSON如下:Deserialising JSON C#

{"data":[{"name":"123","pwd":123},{"name":"456","pwd":456},{"name":"789","pwd":789}],"duration":5309,"query":"myquery","timeout":300} 

使用http://json2csharp.com/我如下deserialising它:

namespace Test 
    { 
    public class Info 
    { 
     public string name{ get; set; } 
     public string pwd{ get; set; } 
    } 

    public class Product 
    { 
     public Info[] data { get; set; } 
     public int duration { get; set; } 
     public string query { get; set; } 
     public int timeout { get; set; } 
    } 
    //code here, function start etc. 

    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
    using (var streamReader = new 
    StreamReader(httpResponse.GetResponseStream())) 
    { 
      var result = streamReader.ReadToEnd(); 
      Product myprod = JsonConvert.DeserializeObject<Product>(result); 
      var results = myprod.data; 
    } 
} 

結果的值是{Test.Info [0]}其中測試是我的命名空間名稱。我如何獲得實際數據?

+4

無論您發佈錯誤JSON,或者你要發送錯誤的類 - 這不是什麼http://json2csharp.com/生成給定的json –

+1

WTF同一個問題,一天兩次? http://stackoverflow.com/questions/43627767/deserializing-json-c-sharp – Smartis

+0

是的,這是因爲我還沒有找到解決方案,但寫了問題時有一個錯誤,道歉 – Nilisha

回答

0

你的信息類應該是

public class Info 
    { 
     public string name { get; set; } 
     public int pwd { get; set; } 
    } 

這應該工作

var testJson = "{\"data\":[{\"name\":\"123\",\"pwd\":123},{\"name\":\"456\",\"pwd\":456},{\"name\":\"789\",\"pwd\":789}],\"duration\":5309,\"query\":\"myquery\",\"timeout\":300}"; 

     var product = JsonConvert.DeserializeObject<Product>(testJson); 
+0

正確。對不起,我改變了JSON,更新了問題 – Nilisha

+0

那麼它工作? –