如何在PHP中正确加载json?

时间:2015-09-08 05:52:35

标签: php json

我已尝试过其他SO页面但无法找到解决方案。

我有一个json文件,我试图导入到php文件中,但它返回NULL。

我的网络服务器上的json是有效的,但没有运气。

<style name="NGT48Theme"
           parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/NGT48ActionBar</item>
        <item name="android:windowBackground">@color/white</item>
        <item name="actionBarStyle">@style/NGT48ActionBar</item>
        <item name="android:actionOverflowButtonStyle">@style/NGT48Theme.OverFlow</item>
        <item name="actionOverflowButtonStyle">@style/NGT48Theme.OverFlow</item>
    </style>

<!-- ~~~~~~~~~~~~~~~~~~~~  ActionBar styles ~~~~~~~~~~~~~~~~~~~~ -->
<style name="NGT48ActionBar"
       parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/white</item>
    <item name="background">@color/white</item>
    <item name="android:titleTextStyle">@style/NGT48ActionBarTitleTextStyle</item>
    <item name="titleTextStyle">@style/NGT48ActionBarTitleTextStyle</item>
</style>

<!-- ~~~~~~~~~~~~~~~~~~~ ActionBar Title Text Styles ~~~~~~~~~~~~~~~ -->
    <style name="NGT48ActionBarTitleTextStyle"
           parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
           >
        <item name="android:textColor">@color/red_NGT48</item>
    </style>


    <!-- ~~~~~~~~~~~~~~~~~~~ Overflow Icon Styles ~~~~~~~~~~~~~~~ -->
    <style name="NGT48Theme.OverFlow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_zoom_in_red_48dp</item>
    </style>

PHP文件:

http://higconsolidated.com/json.json

错误日志:

  

file_get_contents(higconsolidated.com/json.json):无法打开   stream:getjson.php中的连接被拒绝

提前致谢。

4 个答案:

答案 0 :(得分:2)

在您的PHP中,您使用的是json.json而不是json.php。可能json.json可能不存在。

更新后: 对我来说,有一个文件

<?php
  $json = file_get_contents('http://higconsolidated.com/json.json');
  $obj = json_decode($json);
  var_dump($obj);
?>

收益array(47) { [0]=> object(stdClass)#1 (5) { ["code"]=> string(4) "1031" ["par"]=> string(1) "1" ["category"]=> string(1) "A" ["product"]=> string(18) "FIDJI QUINOA SALAD" ["format"]=> string(5) "2x1kg" } [1]=>...

如果您有其他代码,请尝试使用上面的最小文件。

第二次更新后:您的问题与解析JSON无关。您似乎遇到某种请求/流量限制或防火墙问题。 higconsolidated.com是否与运行PHP文件的主机相同?

答案 1 :(得分:0)

$json = file_get_contents('http://higconsolidated.com/json.php');

答案 2 :(得分:0)

您的方法是正确的,但我建议您检查您正在使用的json文件的格式。

<?php

// the following strings are valid JavaScript but not valid JSON

// the name and value must be enclosed in double quotes
// single quotes are not valid 
$bad_json = "{ 'bar' : 'baz' }";
json_decode($bad_json); // null

// the name must be enclosed in double quotes
$bad_json = '{ "bar" : "baz" }';
json_decode($bad_json); // null

// trailing commas are not allowed
$bad_json = '{ "bar" : "baz", }';
json_decode($bad_json); // null

?>

请看这里http://php.net/manual/en/function.json-decode.php

答案 3 :(得分:0)

$json = file_get_contents('http://higconsolidated.com/json.json');
$obj = json_decode($json);
foreach ($obj as $value) 
{
    //you can retrieve all the keys here
    echo $value->code."<br>" ;
}