答えて

2

あなたは必ずしもDataContractJsonSerializerを使用してJSON文字列を「解析」ではないだろうが、あなたはこれを使用してオブジェクトまたはオブジェクトのリストにそれをデシリアライズすることができます。これがあなたの後のものであれば、それをオブジェクトのリストにデシリアライズする簡単な方法があります。

まず、あなたがにデシリアライズする予定のオブジェクト型を持っている必要があります:

[DataContract] 
public class MyElement 
{ 
    [DataMember(Name="elementsProperties")] // this must match the json property name 
    public string ElementsProperties { get; set; } 
} 
その後、オブジェクトのリストにあなたのJSON文字列をデシリアライズするために、次の方法のようなものを使用することができます

private List<MyElement> ReadToObject(string json) 
{ 
    var deserializedElements = new List<MyElement>(); 
    using(var ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) 
    { 
     var ser = new DataContractJsonSerializer(deserializedElements.GetType()); 
     deserializedElements = ser.ReadObject(ms) as List<MyElement>; 
    } 
    return deserializedUsers; 
} 
+0

json.net – earthling

+0

のような他のjsonデシリアライザも見ることができます。ありがとう、束= D 私は既に "解決策"を見つけました。 (そしてidd、私はdeserializeメソッドを使用しました= 3)私がやったことは、私の遅れた頭で、データを格納するリストと[DataContract]プレフィックスを格納したい要素の両方を与えています。 (私は要素だけで始まったが、後でリストを使ってデータを保存し、[DataContract]を忘れてしまった。将来の参照?) – GeekPeek

0

Json.netを使用することをお勧めします。

それはあなただけ呼び出します。

var jsonObj = JObject.Parse(yourjsonstring); 

var elPropertyValue = (string)jsonObj.SelectToken("array[0].elementsProperies"); 

"SomeLiteral"を取得します。

関連する問題