2012-02-25 86 views
0

这里是我的解码JSON输出,的Json解码麻烦

object(stdClass)#1 (3) { ["name"]=> string(34) "xxxxxxxxxxxxxxx" ["Status"]=> object(stdClass)#2 (2) { ["code"]=> int(200) ["request"]=> string(7) "geocode" } ["Placemark"]=> array(1) { [0]=> object(stdClass)#3 (5) { ["id"]=> string(2) "p1" ["address"]=> string(32) "xxxxxxxxxxxxxxx, USA" ["AddressDetails"]=> object(stdClass)#4 (2) { ["Accuracy"]=> int(8) ["Country"]=> object(stdClass)#5 (3) { ["AdministrativeArea"]=> object(stdClass)#6 (2) { ["AdministrativeAreaName"]=> string(2) "UT" ["Locality"]=> object(stdClass)#7 (3) { ["LocalityName"]=> string(4) "xxxxxxxxxxxxxxx" ["PostalCode"]=> object(stdClass)#8 (1) { ["PostalCodeNumber"]=> string(5) "xxxxxxxxxxxxxxx" } ["Thoroughfare"]=> object(stdClass)#9 (1) { ["ThoroughfareName"]=> string(7) "xxxxxxxxxxxxxxx" } } } ["CountryName"]=> string(3) "USA" ["CountryNameCode"]=> string(2) "US" } } ["ExtendedData"]=> object(stdClass)#10 (1) { ["LatLonBox"]=> object(stdClass)#11 (4) { ["north"]=> float(xxxxxxxxxxxxxxx) ["south"]=> float(xxxxxxxxxxxxxxx) ["east"]=> float(-111.7018448) ["west"]=> float(xxxxxxxxxxxxxxx) } } ["Point"]=> object(stdClass)#12 (1) { ["coordinates"]=> array(3) { [0]=> float(xxxxxxxxxxxxxxx) [1]=> float(xxxxxxxxxxxxxxx) [2]=> int(0) } } } } } 

我可以检索邮政编码(84058)通过使用

echo $geo->Placemark[0]->AddressDetails->Country->AdministrativeArea->Locality->PostalCode->PostalCodeNumber; 

但如何在世界上我将检索这些对象呢? :

  1. [“north”] => float(40.2824822)
  2. [ “东”] =>浮动(-111.7018448)
  3. [0] =>浮动(-111.7032032)
  4. [1] =>浮动(40.2811332)

谢谢,我”新的这个。

回答

0
1. $geo->Placemark[0]->ExtendedData->LatLonBox->north; 
2. $geo->Placemark[0]->ExtendedData->LatLonBox->east; 

3. $geo->Placemark[0]->Point->coordinates[0]; 
4. $geo->Placemark[0]->Point->coordinates[1]; 

这是一个很大很容易看到,如果你试图通过一个漂亮的打印机运行它:

object(stdClass)#1 (3) { 
    ["name"]=> string(34) "xxxxxxxxxxxxxxx" ["Status"]=> object(stdClass)#2 (2) { 
     ["code"]=> int(200) ["request"]=> string(7) "geocode" 
    } 
    ["Placemark"]=> array(1) { 
     [0]=> object(stdClass)#3 (5) { 
      ["id"]=> string(2) "p1" ["address"]=> string(32) "xxxxxxxxxxxxxxx, USA" ["AddressDetails"]=> object(stdClass)#4 (2) { 
       ["Accuracy"]=> int(8) ["Country"]=> object(stdClass)#5 (3) { 
        ["AdministrativeArea"]=> object(stdClass)#6 (2) { 
         ["AdministrativeAreaName"]=> string(2) "UT" ["Locality"]=> object(stdClass)#7 (3) { 
          ["LocalityName"]=> string(4) "Orem" ["PostalCode"]=> object(stdClass)#8 (1) { 
           ["PostalCodeNumber"]=> string(5) "xxx" 
          } 
          ["Thoroughfare"]=> object(stdClass)#9 (1) { 
           ["ThoroughfareName"]=> string(7) "S 325 W" 
          } 

         } 

        } 
        ["CountryName"]=> string(3) "USA" ["CountryNameCode"]=> string(2) "US" 
       } 

      } 
      ["ExtendedData"]=> object(stdClass)#10 (1) { 
       ["LatLonBox"]=> object(stdClass)#11 (4) { 
        ["north"]=> float(xxx) ["south"]=> float(40.2797843) ["east"]=> float(-111.7018448) ["west"]=> float(xxxx) 
       } 

      } 
      ["Point"]=> object(stdClass)#12 (1) { 
       ["coordinates"]=> array(3) { 
        [0]=> float(xxxxx) [1]=> float(xxxx) [2]=> int(0) 
       } 

      } 

     } 

    } 

} 
+0

你用什么工具来格式化这个? – 2012-02-25 02:55:53

+1

@DavidEugenePeterson嗨,抱歉,我忘了链接到它。我使用了这个:http://www.prettyprinter.de/检查了几个盒子,使它看起来像我认为合理可读的一种方式。 – Paulpro 2012-02-25 03:22:31

+0

非常感谢,非常感谢。 – 2012-02-25 03:45:22

1

您将以与检索邮编完全相同的方式检索它。 打破它,所以你可以把它理解:

// access the entire json object 
$geo 

// access the placemark object (which contains an array of data) 
$geo->Placemark 

// access the placemark object at index 0 
$geo->Placemark[0] 

// access the Extended Data object of the Placemark object 
$geo->Placemark[0]->ExtendedData 

等。所以现在你应该能够弄清楚如何到达北部,南部,东部和西部的元素。

echo $geo->Placemark[0]->ExtendedData->LatLonBox->north; 
echo $geo->Placemark[0]->ExtendedData->LatLonBox->south; 

等等