1

linq応答からアドレス情報を返したいのですが。私は近くにいますが、最後のビットを取得することはできません。各エントリのすべてのアドレス情報が必要です。

誰かが最後のビットを手伝ってもらえますか?

  var allCentres = from p in obj["early_child_centres"]
            select p["address"].Children ();

            foreach (var item in allCentres)
            {
                Console.WriteLine(item);
            }

 {

"early_child_centres": [
{

  "centre_name": "Arncliffe Early Childhood Centre",

  "address": {
    "street_name": "12 Firth St",
    "suburb": "Arncliffe",
    "state": "NSW",
    "postcode": "2205",
    "phone": "9599 2896"
  },
  "special_notes": "",

},

]
}
4

1 に答える 1

2

エンティティを使用してjsonを逆シリアル化できます:

[DataContract]
public class Center
{
    [DataMember(Name = "center_name")]
    public string Name { get; set; }
    [DataMember(Name = "special_notes")]
    public string SpecialNotes { get; set; }
    [DataMember(Name = "address")]
    public Address Address { get; set; }

    public Center() { this.Address = new Address();}
}

[DataContract]
public class Address
{
    [DataMember(Name = "street_name")]
    public string StreetName { get; set; }
    [DataMember(Name = "suburb")]
    public string Suburb { get; set; }
    [DataMember(Name = "state")]
    public string State { get; set; }
    [DataMember(Name = "postcode")]
    public string Postcode { get; set; }
    [DataMember(Name = "phone")]
    public string Phone { get; set; }
}

そして、次のように逆シリアル化します。

List<Center> centers = JsonConvert.DeserializeObject<List<Center>>(obj["early_child_centres"].ToString());

そして、あなたのlinqリクエスト:

from c in center
select c.Address
于 2013-03-11T09:21:50.730 に答える