DataContractJsonSerializerを使用してJson文字列内の配列の要素を解析するにはどうすればよいですか? 構文は次のとおりです。DataContractJsonSerializerを使用して配列をJson文字列として解析するWP7
{
"array":[
{
"elementsProperies":"SomeLiteral"
}
]
}
DataContractJsonSerializerを使用してJson文字列内の配列の要素を解析するにはどうすればよいですか? 構文は次のとおりです。DataContractJsonSerializerを使用して配列をJson文字列として解析するWP7
{
"array":[
{
"elementsProperies":"SomeLiteral"
}
]
}
あなたは必ずしも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;
}
Json.netを使用することをお勧めします。
それはあなただけ呼び出します。
var jsonObj = JObject.Parse(yourjsonstring);
var elPropertyValue = (string)jsonObj.SelectToken("array[0].elementsProperies");
が"SomeLiteral"
を取得します。
json.net – earthling
のような他のjsonデシリアライザも見ることができます。ありがとう、束= D 私は既に "解決策"を見つけました。 (そしてidd、私はdeserializeメソッドを使用しました= 3)私がやったことは、私の遅れた頭で、データを格納するリストと[DataContract]プレフィックスを格納したい要素の両方を与えています。 (私は要素だけで始まったが、後でリストを使ってデータを保存し、[DataContract]を忘れてしまった。将来の参照?) – GeekPeek