2013-05-28 17 views
-4

的价值我有一个JSON导致这样JSON得到它的名字属性

{ 
     "responseHeader": { 
      "status": 0, 
      "QTime": 1, 
      "params": { 
       "q": "zip:15241", 
       "wt": "json", 
       "fq": "propertyType:AUCTION" 
      } 
     }, 
     "response": { 
      "numFound": 2, 
      "start": 0, 
      "docs": [{ 
       "streetAddress": "1014 TALL TREES DR", 
       "estimate": 506672.0, 
       "city": "PITTSBURGH", 
       "beds": 4.0, 
       "baths": 3.5, 
       "propertyType": "AUCTION", 
       "status": "OPEN", 
       "propertyId": 778526, 
       "amountField": "OB", 
       "amount": "88888.0", 
       "enteredDate": 20101221, 
       "bed_bath": "4B 3.50BT", 
       "hasPhoto": false, 
       "auctionDate": "2012-08-07T18:30:00Z", 
       "displayAddress": "TALL TREES DR", 
       "zip": "15241", 
       "residenceType": "SFR", 
       "sqFeet": 3275.0, 
       "fcStatusName": "NTS", 
       "county": "Allegheny", 
       "state": "PA", 
       "_version_": 1429451140939907072 
      }, { 
       "streetAddress": "2567 ROSSMOOR DR", 
       "estimate": 503195.0, 
       "city": "PITTSBURGH", 
       "beds": 6.0, 
       "baths": 2.0, 
       "propertyType": "AUCTION", 
       "status": "OPEN", 
       "propertyId": 1662435, 
       "amountField": "MV", 
       "amount": "503195.0", 
       "enteredDate": 20101221, 
       "bed_bath": "6B 2BT", 
       "hasPhoto": false, 
       "auctionDate": "2010-12-24T18:30:00Z", 
       "displayAddress": "ROSSMOOR DR", 
       "zip": "15241", 
       "residenceType": "SFR", 
       "sqFeet": 6143.0, 
       "fcStatusName": "NTS", 
       "county": "Allegheny", 
       "state": "PA", 
       "_version_": 1429451149353680896 
      }] 
     } 
    } 

我想要得到的对象的列表,每个对象将包含的StreetAddress,估计,城市等的价值..

那么如何通过名称访问这些元素?

+0

您的评论被标记为“C#”,但是您没有说出使用哪个.NET库来解析JSON。 –

+0

乔怀特所说的背驮式,你有没有建立你的对象序列化成? –

+3

http://james.newtonking.com/projects/json-net.aspx – Blorgbeard

回答

2

那么看着你的JSON输入(并假设您正在使用您的代码表示C#),也提供了,我明白你的问题是正确的。 你可以做到以下几点:

创建一些对象,你可以映射到,在VS2012 Update 2可以复制,你在你的问题中提供的JSON - >打开cs文件 - >右键 - >粘贴特殊 - >“粘贴JSON作为类”,这将产生如下:

public class Rootobject 
{ 
    public Responseheader responseHeader { get; set; } 
    public Response  response  { get; set; } 
} 

public class Responseheader 
{ 
    public int status { get; set; } 
    public int QTime { get; set; } 
    public Params _params { get; set; } 
} 

public class Params 
{ 
    public string q { get; set; } 
    public string wt { get; set; } 
    public string fq { get; set; } 
} 

public class Response 
{ 
    public int numFound { get; set; } 
    public int start { get; set; } 
    public Doc[] docs  { get; set; } 
} 

public class Doc 
{ 
    public string streetAddress { get; set; } 
    public float estimate  { get; set; } 
    public string city   { get; set; } 
    // etc ... 
} 

那么你可以使用Json.NET(你也可以从NuGet得到)的输入反序列化到一个适当的C#对象,如这个:

Rootobject rootObject = JsonConvert.DeserializeObject<Rootobject>(jsonInput); 

当然,您现在可以访问任何它的性能,如 - >rootObject.response.docs

我希望这有助于。

+1

感谢您的回答。 –

+0

@ArulDinesh :)你知道了,伙计 –