C#の.NET 2.0でのオブジェクトのリストにJson.net deseralize
質問
私はコレクション(リスト)に、いくつかのJSONをdeseralizeしようとしているが、私は、オブジェクトのリストを返しますどの方法わからない、または私は何かをループしており、自分のリストにコピーできますか?
誰が私に私はこのために使用すべき構文や方法を伝えることができます。
私はいくつかのプロパティを持つ私のオブジェクトを作成したので、データを保持するために使用できるようになります。 (タイトル、URL、説明)
私はこれを試してみたが、それは非常に適切ではいないようです。
List<newsItem> test = (List<newsItem>)JsonConvert.DeserializeObject(Fulltext);
解決
あなたが助けを見てみましたか。
http://james.newtonking.com/json/ヘルプ/?トピック= HTML / SerializingCollections.htmする
string json = @"[
{
""Name"": ""Product 1"",
""ExpiryDate"": ""\/Date(978048000000)\/"",
""Price"": 99.95,
""Sizes"": null
},
{
""Name"": ""Product 2"",
""ExpiryDate"": ""\/Date(1248998400000)\/"",
""Price"": 12.50,
""Sizes"": null
}
]";
List<Product> products = JsonConvert.DeserializeObject<List<Product>>(json);
Console.WriteLine(products.Count);
// 2
Product p1 = products[0];
Console.WriteLine(p1.Name);
// Product 1
他のヒント
私は、これらの拡張メソッドを使用しています:
public static string ToJSONArray<T>(this IEnumerable<T> list)
{
DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(IEnumerable<T>));
MemoryStream ms = new MemoryStream();
s.WriteObject(ms, list);
return GetEncoder().GetString(ms.ToArray());
}
public static IEnumerable<T> FromJSONArray<T>(this string jsonArray)
{
if (string.IsNullOrEmpty(jsonArray)) return new List<T>();
DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(IEnumerable<T>));
MemoryStream ms = new MemoryStream(GetEncoder().GetBytes(jsonArray));
var result = (IEnumerable<T>)s.ReadObject(ms);
if (result == null)
{
return new List<T>();
}
else
{
return result;
}
}
あなたはこのようなあなたのオブジェクトを飾るする必要があります:
[DataContract]
public class MyJSONObject
{
[DataMember]
public int IntValue { get; set; }
[DataMember]
public string StringValue { get; set; }
}
の代わりに、一般的なリストの配列を使用してみてください。これは役立つかもしれない。
所属していません StackOverflow