2015-06-24 188 views
-2

我有以下格式的數據。我想將這些數據轉換爲對象。將json轉換爲C中的對象#

Result = { 
"Location": [ 
"bangalore", 
    1, 
"chennai", 
    1, 
"mumbai", 
    1, 
"delhi", 
    0, 
"Agra", 
    0 
] 
} 

在我的Location.cs中,我有以下字段。我想分配數據到這個領域。我怎樣才能做到這一點

public string loc { get; set; } 
public int count { get; set; } 

我試着用

Location = Result.ToObject<List<Location>>(); 

,但沒有工作得到以下錯誤

{ 「不能反序列化當前的JSON對象(例如{\」 名稱\ 「:\」value \「})轉換爲類型'System.Collections.Generic.List`1 [Location]',因爲該類型需要一個JSON數組(例如[1,2,3])來正確地反序列化。\ r \ n修復這個錯誤或者把JSON改成一個JSON數組(例如[1,2,3])或者改變反序列化的類型e,這是一種正常的.NET類型(例如,不是像整數這樣的原始類型,也不是像數組或List這樣的集合類型),它們可以從JSON對象反序列化。 JsonObjectAttribute也可以添加到該類型迫使它從一個JSON對象反序列化。\ r \ n路徑「位置」。「}

+1

請詳細說明您已經做了什麼來解決這個問題。 – Nitram

+0

我試過Result.ToObject <列表>() – Superprogrammer

+1

可能重複[如何將JSON對象轉換爲自定義C#對象?](http://stackoverflow.com/questions/2246694/how-to-convert-json-對象到自定義c-sharp-object) – voytek

回答

0

問題是這樣的:Result是一個JSON對象,而不是一個JSON數組,因此,你不能將它轉換爲List<Location>

您需要包含的地點列表的類。轉換爲該類:

public class LocationsContainer 
{ 
    public List<Location> Location { get; set; } 
} 

Result.ToObject<LocationsContainer>(); 
0

試用Json.NET庫。

List<Location> locations = JsonConvert.DeserializeObject<List<Location>>(result); 
+0

獲取錯誤最佳重載方法匹配'Newtonsoft.Json.JsonConvert.DeserializeObject >(string)'有一些無效參數 – Superprogrammer

+0

嘗試將屬性** count **從_int_更改爲_string_ – zholinho