2014-04-04 68 views
2

我解析如下數據: -NSJSONSerialization解析數據問題

NSURL *URL = [NSURL URLWithString:@"http://maps.googleapis.com/maps/api/directions/json?origin=40.714353,-74.005973&destination=40.650000,-73.950000&sensor=false&units=metric&mode=transit&departure_time=1396594530&alternatives=true"]; 
NSData* data = [NSData dataWithContentsOfURL:URL]; 
NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 

的結果不完整的結果只有部分顯示:

2014-04-04 15:24:10.036 Animation[478:907] { 

routes =  (
      { 
     bounds =    { 
      northeast =     { 
       lat = "40.715478"; 
       lng = "-73.94947789999999"; 
      }; 
      southwest =     { 
       lat = "40.6497484"; 
       lng = "-74.01035299999999"; 
      }; 
     }; 
     copyrights = "Map data \U00a92014 Google"; 
     legs =    (
          { 
       "arrival_time" =      { 
        text = "03:35"; <<----- missing "am" 
        "time_zone" = "America/New_York"; 
        value = 1396596948; 
       }; 
       "departure_time" =      { 
        text = "03:02";<<----- missing "am" 
        "time_zone" = "America/New_York"; 
        value = 1396594936; 
       };` 

當使用該模擬器上正確的結果即將到來,再次展示部分的迴應: -

{ 
    "routes" : [ 
     { 
     "bounds" : { 
      "northeast" : { 
       "lat" : 40.715478, 
       "lng" : -73.94947789999999 
      }, 
      "southwest" : { 
       "lat" : 40.6497484, 
       "lng" : -74.01035299999999 
      } 
     }, 
     "copyrights" : "Map data ©2014 Google", 
     "legs" : [ 
      { 
       "arrival_time" : { 
        "text" : "3:35am", <<----- showing "am" 
        "time_zone" : "America/New_York", 
        "value" : 1396596948 
       }, 
       "departure_time" : { 
        "text" : "3:02am",<<----- showing "am" 
        "time_zone" : "America/New_York", 
        "value" : 1396594936 
       } 

而相同的代碼正在模擬器罰款。

+0

我想嘗試傳感器=真。我認爲這是問題。 –

+0

同樣的問題,我沒有試過。 – Sandy

回答

4

調用地圖API時,您可以通過language。設置語言en_US導致預期的結果:

NSURL *URL = [NSURL URLWithString:@"http://maps.googleapis.com/maps/api/directions/json?origin=40.714353,-74.005973&destination=40.650000,-73.950000&sensor=false&units=metric&mode=transit&departure_time=1396594530&alternatives=true&language=en_US"]; 
+0

你是怎麼知道的? – Sandy

+0

Google提供了[很好的文檔](https://developers.google.com/maps/documentation/javascript/basics#Language) – nils