在PHP中将对象值转换为字符串失败

时间:2015-07-10 05:42:36

标签: php

我正在尝试找到一种将对象$php_object->page->ad->makeName强制转换为字符串的方法,但到目前为止,我所阅读的所有解决方案都没有为我工作。以下代码

$json_string = '{"SUPPRESS_DEALER_REPORTING_FOR_AD_IDS":[211124806],"REQUEST_LANGUAGE_SETTINGS":"de","org.springframework.validation.BindingResult.SUPPRESS_DEALER_REPORTING_FOR_AD_IDS":{"target":[211124806],"autoGrowNestedPaths":true,"autoGrowCollectionLimit":256,"objectName":"SUPPRESS_DEALER_REPORTING_FOR_AD_IDS","messageCodesResolver":{"prefix":"","formatter":"PREFIX_ERROR_CODE"},"errors":[],"suppressedFields":[],"nestedPath":"","nestedPathStack":[]},"org.springframework.validation.BindingResult.REQUEST_LANGUAGE_SETTINGS":{"target":"de","autoGrowNestedPaths":true,"autoGrowCollectionLimit":256,"objectName":"REQUEST_LANGUAGE_SETTINGS","messageCodesResolver":{"prefix":"","formatter":"PREFIX_ERROR_CODE"},"errors":[],"suppressedFields":[],"nestedPath":"","nestedPathStack":[]},"page":{"ad":{"makeName":{"value":"Volkswagen"},"modelName":{"value":"Polo"},"damagedVehicle":{"value":""},"exportVehicle":{},"countryVersion":{},"images":[{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/CPkAAOSwKrhVeHwO/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/CPkAAOSwKrhVeHwO/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/CPkAAOSwKrhVeHwO/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/stgAAOSweW5VeHwd/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/stgAAOSweW5VeHwd/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/stgAAOSweW5VeHwd/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/nMEAAOSw~OdVeHws/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/nMEAAOSw~OdVeHws/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/nMEAAOSw~OdVeHws/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/L~oAAOSwZd1VeHw5/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/L~oAAOSwZd1VeHw5/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/L~oAAOSwZd1VeHw5/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/vJgAAOSwstxVeHxF/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/vJgAAOSwstxVeHxF/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/vJgAAOSwstxVeHxF/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/vqcAAOSwstxVeHxU/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/vqcAAOSwstxVeHxU/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/vqcAAOSwstxVeHxU/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/is4AAOSwBahVeHxk/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/is4AAOSwBahVeHxk/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/is4AAOSwBahVeHxk/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/MasAAOSw3xJVeHxz/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/MasAAOSw3xJVeHxz/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/MasAAOSw3xJVeHxz/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTYwMFgxMTk0/z/YeMAAOSwpDdVeHyF/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTYwMFgxMTk0/z/YeMAAOSwpDdVeHyF/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTYwMFgxMTk0/z/YeMAAOSwpDdVeHyF/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/rSwAAOSw~OdVeHyU/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/rSwAAOSw~OdVeHyU/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/rSwAAOSw~OdVeHyU/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/klcAAOSwBahVeHyj/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/klcAAOSwBahVeHyj/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/klcAAOSwBahVeHyj/$_27.JPG"}},{"thumbnail":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/s1gAAOSw~OdVeHy0/$_18.JPG"},"medium":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/s1gAAOSw~OdVeHy0/$_24.JPG"},"large":{"src":"https://ssli.ebayimg.com/00/s/MTE5NFgxNjAw/z/s1gAAOSw~OdVeHy0/$_27.JPG"}}],"internalNumber":{"link":{}},"additionalAttributes":[{"label":"Hubraum","link":{},"value":"1390 cm³"},{"label":"Anzahl Sitzplätze","link":{},"value":"5"},{"label":"Anzahl der Türen","link":{},"value":"4/5"},{"label":"Schadstoffklasse","link":{},"value":"Euro4"},{"label":"Umweltplakette","link":{},"value":"4 (Grün)"}],"genericFeatures":{"headline":{},"features":[],"available":false},"interiorFeatures":{"headline":{"value":"Innenausstattung"},"features":[{"value":"CD-Spieler","enabled":true},{"value":"Einparkhilfe (Hinten)","enabled":true},{"value":"Elektr. Fensterheber","enabled":true},{"value":"Klimatisierung (Klimaautomatik)","enabled":true},{"value":"Servolenkung","enabled":true},{"value":"Tempomat","enabled":true},{"value":"Tuner/Radio","enabled":true},{"value":"Zentralverriegelung","enabled":true}],"available":true},"exteriorFeatures":{"headline":{"value":"Außenausstattung"},"features":[{"value":"Elektr. Seitenspiegel","enabled":true},{"value":"Leichtmetallfelgen","enabled":true}],"available":true},"extrasFeatures":{"headline":{"value":"Extras"},"features":[{"value":"Scheckheftgepflegt","enabled":true}],"available":true},"securityFeatures":{"headline":{"value":"Sicherheit &amp; Umwelt"},"features":[{"value":"ABS","enabled":true},{"value":"Airbags (Front-, Seiten- und weitere Airbags)","enabled":true},{"value":"ESP","enabled":true},{"value":"Elektr. Wegfahrsperre","enabled":true},{"value":"Traktionskontrolle","enabled":true}],"available":true},"galleryFeatures":[{"value":"Klimatisierung (Klimaautomatik)"},{"value":"Einparkhilfe (Hinten)"},{"value":"Tempomat"},{"value":"Servolenkung"},{"value":"Elektr. Fensterheber"},{"value":"Zentralverriegelung"},{"value":"CD-Spieler"},{"value":"Tuner/Radio"},{"value":"Scheckheftgepflegt"},{"value":"Leichtmetallfelgen"},{"value":"Elektr. Seitenspiegel"},{"value":"Airbags (Front-, Seiten- und weitere Airbags)"},{"value":"ABS"},{"value":"Elektr. Wegfahrsperre"},{"value":"ESP"},{"value":"Traktionskontrolle"}],"description":{"value":"Au&szlig;en<br>- 4 Stahlr&auml;der 6 J x 15 mit Radvollblenden, Reifen 195/55 R 15<br>- Folienschriftzug &quot;Goal&quot; auf dem hinteren Seitenteilen<br><br>Innen<br>- Einstiegsleisten mit Folienschriftzug &quot;Goal&quot;<br>- Fahrersitz mit H&ouml;heneinstellung und integrierter Schublade<br>- Haltegriffe ged&auml;mpft<br>- Handbremshebelgriff in Leder mit orangefarbenen Ziern&auml;hten<br>- Handbremshebelknopf in Chrom<br>- Lederlenkrad (3 Speichen) mit orangefarbenen Ziern&auml;hten und Alu-Dekor<br>- R&uuml;cksitzbank und -lehne asymetrisch umklappbar<br>- Schalthebelknauf in Leder mit Linse &quot;Goal&quot;<br>- Schalthebelmanschette mit orangefarbenen Ziern&auml;hten<br>- Sitzmittelbahn im Dessin &quot;Popcorn&quot; mit Schriftzug &quot;Goal&quot;<br>- Tipp-Kick-Spiel<br><br>Funktion<br>- 2 Leseleuchten vorn<br>- Doppelton-Signalhorn<br>- Gep&auml;ckraumbeleuchtung<br>- Geschwindigkeitsregelanlage<br>- Instrumentenbeleuchtung regelbar<br>- Klimaanlage &quot;Climatronic&quot;<br>- Make-up Spiegel beleuchtet in den Sonnenblenden<br>- Multifunkionsanzeige<br>- Parkpilot<br>- Radiosystem RCD 200 mit 4 Lautsprechern<br><br><hr>Finanzierung m&ouml;glich!<br><br>&Auml;nderungen, Irrt&uuml;mer und Zwischenverkauf vorbehalten!<br>"},"slideshowJson":"https://home.mobile.de/home/slideshow.json","slideshowAvailable":false,"callAnalystPhoneNumbers":[],"adId":211124806,"priceModel":{"type":{},"secondaryPrice":{"countryOfSale":{},"countryOfOrigin":{},"net":true},"primaryPrice":{"countryOfSale":{"value":"5.999 EUR"},"countryOfOrigin":{},"net":false},"previousPrice":{},"deliveryCost":{},"vatRate":{"value":"MwSt. nicht ausweisbar"},"infoText":{},"vatReclaimable":false},"makeModelDescription":{"value":"Volkswagen Polo 1.4 Goal"},"bodyType":{"value":"Kleinwagen"},"usageType":{"value":"Gebrauchtfahrzeug"},"firstRegistration":{"value":"EZ 10/2006"},"mileage":{"value":"63.000 km"},"fuelConsumption":[{"label":"Kraftstoffverbr. komb.","link":{},"infoIcon":"Bei den angegebenen Daten handelt es sich um Circa-Angaben des Angebot-Erstellers. Die Werte können Erfahrungen zu diesem Modell darstellen oder aus anderen Quellen stammen.","value":"ca. 6,4 l/100 km"},{"label":"Kraftstoffverbr. innerorts","link":{},"value":"ca. 8,5 l/100 km"},{"label":"Kraftstoffverbr. außerorts","link":{},"value":"ca. 5,2 l/100 km"},{"label":"CO²-Emissionen komb.","link":{},"value":"ca. 152 g/km"},{"label":"Zugr.-lgd. Treibstoffart","link":{},"infoIcon":"Die Ermittlung der Verbrauchs- und Emissionswerte sowie die Energieeffizienzklasse basieren auf der Verwendung dieser Treibstoff-Art.","value":"Benzin"}],"attributes":[{"value":"EZ 10/2006"},{"value":"63.000 km"},{"value":"Benzin"},{"value":"59 kW (80 PS)"},{"value":"Schaltgetriebe"}],"videoLinkPresent":false,"advice":{},"secret":"a22a1d743e3de342fb18cbe2ac8c3dcf"},"recommendVehicle":{"url":"mailto:?subject=ich habe ein interessantes Fahrzeug bei mobile.de gefunden: &amp;body=Hallo, %0D%0Aich habe ein interessantes Fahrzeug bei mobile.de gefunden: %0D%0A%0D%0AVolkswagen%20Polo%201.4%20Goal%0D%0A%0D%0Ahttp://suchen.mobile.de/fahrzeuge//details.html?id=211124806","alt":"Fahrzeug weiterempfehlen"}}}';
$php_object = json_decode($json_string);

$adDetails = array();

if(!empty($php_object->page->ad->makeName)) {

    $adDetails[] = array(   "fk_adId" => $php_object->page->ad->adId,
                            "property" => 'makeName',
                            "value" => $php_object->page->ad->makeName,
                            );
}

var_dump($adDetails);

返回

array (size=1)
  0 => 
    array (size=3)
      'fk_adId' => int 211124806
      'property' => string 'makeName' (length=8)
      'value' => 
        object(stdClass)[8]
          public 'value' => string 'Volkswagen' (length=10)

有经验的人可以支持找到解决方案。

非常感谢提前!

2 个答案:

答案 0 :(得分:1)

尝试

$php_object = json_decode($json_string,true);

$adDetails = array();
//pr($php_object);
if(!empty($php_object['page']['ad']['makeName'])) {

    $adDetails[] = array(   "fk_adId" => $php_object['page']['ad']['adId'],
                            "property" => 'makeName',
                            "value" => $php_object['page']['ad']['makeName'],
                            );
}
echo "<pre>";
var_dump($adDetails);

说明:

在这里,您要将一个json字符串转换为对象数组,您需要做的是在json_decode($json_string,true)中传递一个额外的参数true,它会为您提供一个数组,并且它就是

答案 1 :(得分:0)

第二个参数将解码的json字符串转换为关联数组。

示例:

json_decode('{"foo":"bar"}'); // returns an object, not an array.
json_decode('{"foo":"bar"}', true); // returns array("foo" => "bar")

您可以详细了解here

您使用的是json_decode($json_string),它是返回对象格式而不是数组格式。

现在,我希望您了解如何将JSON值转换为PHP数组。请将以下代码替换为您的代码并完成。

//Decode JSON data to PHP array
$php_array = json_decode($json_string, TRUE);

//Initialize array
$adDetails = array();

//Check for array value is not empty
if(!empty($php_array['page']['ad']['makeName'])) {

    //Set array value
    $adDetails[] = array("fk_adId" => $php_array['page']['ad']['adId'],
                            "property" => 'makeName',
                            "value" => $php_array['page']['ad']['makeName'],
                            );
}

//Remove print stuff if not require
print('<pre>');
print_r($adDetails);
print('</pre>');

上面的代码将返回你想要的PHP数组,打印如下:

Array
(
    [0] => Array
        (
            [fk_adId] => 211124806
            [property] => makeName
            [value] => Array
                (
                    [value] => Volkswagen
                )

        )

)

PS:如果这些东西可以帮到你,请给我留言和支持:)

谢谢!