0

我正在使用 C# 编写代码,它将解析 JSON 代码并将其创建为对象。

我有这个 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.Net 来解析 json,那么首先您应该创建以下创建并将 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 回答