2014-10-09 99 views
-1

這是我的JSON字符串:反序列化JSON空

"{\"1\":{\"Name\":\"macintosh\",\"ShortDescription\":\"red\",\"LongDescription\":\"dfhdfh\"},\"2\":{\"Name\":\"macintosh\",\"ShortDescription\":\"red\",\"LongDescription\":\"dfhdfh\"},\"7\":{\"Name\":\"macintosh\",\"ShortDescription\":\"red\",\"LongDescription\":\"dfhdfh\"},\"8\":{\"Name\":\"macintosh\",\"ShortDescription\":\"red\",\"LongDescription\":\"dfhdfh\"},\"9\":{\"Name\":\"macintosh\",\"ShortDescription\":\"red\",\"LongDescription\":\"dfhdfh\"},\"10\":{\"Name\":\"macintosh\",\"ShortDescription\":\"red\",\"LongDescription\":\"dfhdfh\"}}" 

這是JSON對象:

{ 
    "1": { 
     "Name": "macintosh", 
     "ShortDescription": "red", 
     "LongDescription": "dfhdfh" 
    }, 
    "2": { 
     "Name": "macintosh", 
     "ShortDescription": "red", 
     "LongDescription": "dfhdfh" 
    }, 
    "7": { 
     "Name": "macintosh", 
     "ShortDescription": "red", 
     "LongDescription": "dfhdfh" 
    }, 
    "8": { 
     "Name": "macintosh", 
     "ShortDescription": "red", 
     "LongDescription": "dfhdfh" 
    }, 
    "9": { 
     "Name": "macintosh", 
     "ShortDescription": "red", 
     "LongDescription": "dfhdfh" 
    }, 
    "10": { 
     "Name": "macintosh", 
     "ShortDescription": "red", 
     "LongDescription": "dfhdfh" 
    } 
} 

這裏是我的課:

public class MyModel 
{ 
    public string Name { get; set; } 

    public string ShortDescription { get; set; } 

    public string LongDescription { get; set; } 
} 

public class Friends 
{ 
    public Dictionary<int, MyModel> data { get; set; } 
} 

這裏是如何我試圖反序列化它:

Friends facebookFriends = new JavaScriptSerializer().Deserialize<Friends>(theJsonString); 

但是然後facebookFriends.data給我null值。我究竟做錯了什麼?

回答

1

嘗試:

var friends = new JavaScriptSerializer().Deserialize<Dictionary<string, MyModel>>(theJsonString); 
0

有幾個問題。反串行器期望看到一個data對象,而您在JSON字符串中沒有這個對象。此外,你有「鑰匙」是字符串,而不是整數。所以,你想是這樣的:

Friends facebookFriends = new Friends(); 
facebookFriends.data = new JavaScriptSerializer().Deserialize<Dictionary<string, MyModel>>(theJsonString); 

您還需要更新你的課程模式:

public class Friends 
{ 
    public Dictionary<string, MyModel> data { get; set; } 
}