2016-09-25 80 views
-4

我想从使用c#的json文件中获取值。 json文件看起来更像下面的字符串。从C#获取JSON值#

{ 
    "results": [ 
     { 
      "address_components": [ 
       { 
        "long_name": "3", 
        "short_name": "3", 
        "types": [ 
         "street_number" 
        ] 
       } 
      ], 
      "formatted_address": "3, Puppalaguda - Manikonda Main Rd, Sri Laxmi Nagar Colony, Manikonda, Hyderabad, Telangana 500089, India", 
      "geometry": { 
       "bounds": { 
        "northeast": { 
         "lat": 17.4025788, 
         "lng": 78.3748307 
        }, 
        "southwest": { 
         "lat": 17.4019665, 
         "lng": 78.3733937 
        } 
       }, 
       "location": { 
        "lat": 17.4023166, 
        "lng": 78.37417409999999 
       }, 
       "location_type": "RANGE_INTERPOLATED", 
       "viewport": { 
        "northeast": { 
         "lat": 17.4036216302915, 
         "lng": 78.37546118029151 
        }, 
        "southwest": { 
         "lat": 17.4009236697085, 
         "lng": 78.3727632197085 
        } 
       } 
      }, 
      "place_id": "EmkzLCBQdXBwYWxhZ3VkYSAtIE1hbmlrb25kYSBNYWluIFJkLCBTcmkgTGF4bWkgTmFnYXIgQ29sb255LCBNYW5pa29uZGEsIEh5ZGVyYWJhZCwgVGVsYW5nYW5hIDUwMDA4OSwgSW5kaWE", 
      "types": [ 
       "street_address" 
      ] 
     } 
    ] 
} 

我要寻找从C#的JSON的的formatted_address元素。我在JObject,JArray,JToken迷路了。我正在尝试使用NewtonSoft JSON。谢谢。

+0

能告诉你一些代码,请还精确的是什么库做如果您使用任何解析器,则用于Json解析。 – IamNguele

+0

我正在尝试使用Newtonsoft JSON ...更新了我的问题 –

+1

http://stackoverflow.com/q/39276161/1070452 – Plutonix

回答

0

最简单的办法就是让模型对象,然后调用

var rootObject = JsonConvert.DeserializeObject(jsonString); 

随着jsonString是您的输入。然后你可以像这样从第一个数组元素中检索formatted_address,如下所示:

var formattedAddress = rootObject.results[0].formatted_address; 

希望它有帮助。

+0

如何获得结果数组? –

-1

使用Newtonsoft.Json的NuGet。做这样的事情

static void Main(string[] args) 
    { 
     string json = "{'results':[{'SwiftCode':'','City':'','BankName':'Deutsche Bank','Bankkey':'10020030','Bankcountry':'DE'},{'SwiftCode':'','City':'10891 Berlin','BankName':'Commerzbank Berlin (West)','Bankkey':'10040000','Bankcountry':'DE'}]}"; 

     var resultObjects = AllChildren(JObject.Parse(json)) 
      .First(c => c.Type == JTokenType.Array && c.Path.Contains("results")) 
      .Children<JObject>(); 

     foreach (JObject result in resultObjects) 
     { 
      foreach (JProperty property in result.Properties()) 
      { 
       // do something with the property belonging to result 
      } 
     } 
    } 

    // recursively yield all children of json 
    private static IEnumerable<JToken> AllChildren(JToken json) 
    { 
     foreach (var c in json.Children()) 
     { 
      yield return c; 
      foreach (var cc in AllChildren(c)) 
      { 
       yield return cc; 
      } 
     } 
    } 

变化JTokenType.Array到任何ü愿意,也可以改变“结果”您要提取属性名称类型