foreach循环以获取JSON值 [英] foreach loop to fetch JSON value

查看:586
本文介绍了foreach循环以获取JSON值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取JSON结果的所有纬度和经度。

JSON结果(有很多记录):

 结果:[
{
geometry:{
location:{
lat:28.637255,
lng:77.05202800000001
}
},
icon:http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png,
id:aef56d078ec3fcab6f4a966bd944d3d59973bd72 ,
name:Homeopati Kendra,
opening_hours:{
open_now:false,
weekday_text:[]
},
place_id: ChIJQavdFRwFDTkRMRAhjCbIOnI,
参考: CnRjAAAAwCoBEGDvsL4KeQNPyT2OsVF82b7FChIpUHRFQvGg8b1eR7FCv9I1nUPn0lFf50OVG9ug1PevkcZG813Lq9AAe1dK5GCgn99ajpQ1it9lafCwX3SaUwtiinLiepgptdHNz3NgDzhpVIx70a2D1KZcchIQvD4OS73_Jmr2wYQg4jtRjxoUjCnGT2M4XzDIXadJOtgA-LgRNR4,
范围:GOOGLE,
类型:[医院,健康,建立],
附近:C-29,Vikas Nagar,Uttam Nagar,Vikas Nagar Extn,Hastsal,新德里
},



特定记录(先记录):

 JObject obj = JObject.Parse(googleResult); 
JArray jarr =(JArray)obj [ results];
double lt =( double )jarr [ 0 ] [ geometry] [ location] [ lat ];
double lg =( double )jarr [ 0 ] [ geometry] [ location] [ lng ];



用于获取所有记录:

  foreach  var  item  in  jarr)
{
double lt = Convert.ToDouble(item [jarr [ geometry] [ location] [ lat]]);
}



对于获取一条记录,它可以正常工作,但对于所有记录都不起作用。

解决方案

< blockquote>

  double  lt =( double )item.SelectToken(  geometry.location.lat); 


I am trying to fetch all the latitude and longitude of my JSON result.
JSON Result (have many records):

"results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : 28.637255,
               "lng" : 77.05202800000001
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "aef56d078ec3fcab6f4a966bd944d3d59973bd72",
         "name" : "Homeopati Kendra",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "place_id" : "ChIJQavdFRwFDTkRMRAhjCbIOnI",
         "reference" : "CnRjAAAAwCoBEGDvsL4KeQNPyT2OsVF82b7FChIpUHRFQvGg8b1eR7FCv9I1nUPn0lFf50OVG9ug1PevkcZG813Lq9AAe1dK5GCgn99ajpQ1it9lafCwX3SaUwtiinLiepgptdHNz3NgDzhpVIx70a2D1KZcchIQvD4OS73_Jmr2wYQg4jtRjxoUjCnGT2M4XzDIXadJOtgA-LgRNR4",
         "scope" : "GOOGLE",
         "types" : [ "hospital", "health", "establishment" ],
         "vicinity" : "C-29 , Vikas Nagar,Uttam Nagar, Vikas Nagar Extn, Hastsal, New Delhi"
      },


for particular record (say record first):

JObject obj = JObject.Parse(googleResult);
JArray jarr = (JArray)obj["results"];
double lt = (double)jarr[0]["geometry"]["location"]["lat"];
double lg = (double)jarr[0]["geometry"]["location"]["lng"];


for fetching all records:

foreach(var item in jarr)
{
    double lt = Convert.ToDouble(item[jarr["geometry"]["location"]["lat"]]);
}


For fetching one record it works fine but for all records its not working.

解决方案

double lt = (double)item.SelectToken("geometry.location.lat");


这篇关于foreach循环以获取JSON值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆