2012-02-27 4 views
2

に私はのデシリアライゼーションは、C#

{"data":[ 
{"description":"xxxxxx","created_time":1330356685}, 
    {"description":"zzzz","created_time":1329817903} 
]} 

次のように私のクラスであるが、以下のようであるJSON文字列の値をdeserealizeしようとしていますnFrndsの配列インデックスにNULL値を取得する

NewFriends nFrnds = serializer.Deserialize<NewFriends>(newFriends); 

助けてください!

+2

@CloseVoter、これはあまりローカライズされていません。このような質問は、StackOverflowが存在する理由です。 –

+0

使用しているシリアライザは何ですか? .Netには2つのものが組み込まれていますが、そのうちの1つを使用しようとしていると思いますか? – Josh

答えて

2

の代わりにListを使用します:

string s = "{\"data\":[{\"description\":\"xxxxxx\",\"created_time\":1330356685}, {\"description\":\"zzzz\",\"created_time\":1329817903}]}"; 
JavaScriptSerializer jss = new JavaScriptSerializer(); 
NewFriends nFrnds = jss.Deserialize(s, typeof(NewFriends)) as NewFriends; 
MessageBox.Show(nFrnds.data.Length.ToString()); 
6

Json.Netを調べることをお勧めします。これは、デシリアライズ処理を簡単にします。

PM>インストール・パッケージNewtonsoft.Jsonを

public class NewFriends 
{ 
    public List<Data> data { get; set; } 

} 

public class Data 
{ 
    string description { get; set; } 
    int created_time { get; set; } 
} 
var jsonObj = @"{"data":[ 
{"description":"xxxxxx","created_time":1330356685}, 
    {"description":"zzzz","created_time":1329817903} 
]}" 


NewFriends newFriends = JsonConvert.DeserializeObject<NewFriends>(jsonObj); 
+0

私は彼がデシリアライザを書いているという印象を受けませんでしたが、彼が使用しているのは正しく動作していないということだけです。私は間違っている可能性がある。 – Josh

+0

JSONオブジェクト用のPOCOを構築してハングアップしているように見えます。おそらく、 "DataContract"パスを移動している可能性があります。 –

2

試してこのコードは、私のために正常に動作Array

public class NewFriends 
{ 
    public List<Data> data { get; set; } 

} 

public class Data 
{ 
    string description { get; set; } 
    int created_time { get; set; } 
} 
+2

+1リストを使用できるときに配列が好きではない – Zote

+0

配列を使うことができるList <>が好きではない – RBaarda

関連する問題