0

JSONコードを解析してオブジェクトとして作成するC#を使用してコードを書いています。

私はこのJSONの例を持っています

{
     "firstName": "John",
     "lastName" : "Smith",
     "age"      : 25,
     "address"  :
     {
         "streetAddress": "21 2nd Street",
         "city"         : "New York",
         "state"        : "NY",
         "postalCode"   : "10021"
     },
     "phoneNumber":
     [
         {
           "type"  : "home",
           "number": "212 555-1234"
         },
         {
           "type"  : "fax",
           "number": "646 555-4567"
         }
     ]
 }

ご覧のとおり、複数の番号があり、1 つの電話番号を持つ人もいれば、4 つまたは 5 つの電話番号を持つ人もいます。

While ループを実行する必要があることはわかっていますが、作成した PhoneNumber オブジェクトにこれらの電話を追加するためのカウンターとして使用するために、電話番号内にある電話の数を取得できますか?

4

2 に答える 2

0

NEWTONSOFT.JSON を使用すると、このコードで PhoneNumber の配列を取得できます。

JArray sa = (JArray)o["person"]["phoneNumbers"]["phoneNumber"];

そして、これは利用可能な電話番号の数を取得します

sa.Count
于 2012-06-04T11:54:35.280 に答える
0

json の解析に Json.Net を使用している場合は、最初に次の作成を作成し、json を次の連絡先オブジェクトに逆シリアル化する必要があります。連絡先オブジェクトに逆シリアル化した後、すべてが簡単になります。

public class Contact
{
  public string firstName { get; set; }
  public string lastName { get; set; }
  public int age { get; set; }
  public address address { get; set; };
  public List<phoneNumber> phoneNumber { get; set; }
}

public class address
{
     public string streetAddress { get; set; }
     public string city { get; set; }
     public string state { get; set; }
     public string postalCode { get; set; }
}


public class phoneNumber
{
     public string type { get; set; }  
     public string number { get; set; }
}


var contact = Newtonsoft.Json.JsonConvert.DeserializeObject<Contact>(data);
var count = contact.phonenumber.Count;
于 2012-06-04T12:01:36.640 に答える