【问题标题】:Getting Issue in Parsing String Using PHP使用 PHP 解析字符串时遇到问题
【发布时间】:2016-01-15 08:26:46
【问题描述】:

这是我收到的回复。

{  
    "StartTime":"2016-01-15T03:22:33.109787-05:00",
    "EndTime":"2016-01-15T03:22:34.2504378-05:00",
    "queryController":{  
        "TotalRecords":8355,
        "PageNumber":1,
        "PageSize":8,
        "DataFilters":[  

        ],
        "PropertyListing":[  
            {  
                "EntityName":"Product",
                "PropertyName":"IXOneId"
            },
            {  
                "EntityName":null,
                "PropertyName":"UPC12"
            }
        ],
        "EntityName":"QueryController"
    },
    "Products":[  
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1080",
            "UPC12":"037014000245"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1090",
            "UPC12":"747599617003"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1079",
            "UPC12":"024182001822"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1102",
            "UPC12":"745158300519"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1077",
            "UPC12":"024182001891"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1148",
            "UPC12":"039978003645"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1110",
            "UPC12":"070670005759"
        },
        {  
            "EntityName":"Product",
            "IXOneId":"SNL1083",
            "UPC12":"037014000290"
        }
    ],
    "ResponseMessages":null,
    "EntityName":"ProductSearchReturn"
}

我想获取所有记录的 IXOneIdUPC12 值,并希望将其显示在我的页面上。如何在 PHP 的帮助下得到这个?有点坚持。我们将不胜感激。

【问题讨论】:

  • 你能说明你尝试了什么以及你卡在哪里了吗?
  • 我是 PHP 新手,所以不知道具体的方法。

标签: php json


【解决方案1】:

假设以下变量 $string 包含您的示例 json 字符串。
使用json decode 解码并遍历内部Products 数组。

$json = json_decode($string);

foreach($json->Products as $product){
    print $product->IXOneId . ' ' . $product->UPC12 . PHP_EOL;
}

会输出

SNL1080 037014000245
SNL1090 747599617003
SNL1079 024182001822
SNL1102 745158300519
SNL1077 024182001891
SNL1148 039978003645
SNL1110 070670005759
SNL1083 037014000290

【讨论】:

    【解决方案2】:

    这是一个 JSON 结构。使用json_decode 将其转换为数组,然后使用while 循环或for 循环对其进行循环,以按照您需要的方式提取数据。

    【讨论】:

    • 我已经尝试过,但未能成功。 @stephenthedev
    【解决方案3】:

    将数据存储在 variable 中,在 $arr 中,然后使用 json_decode 。 然后你可以使用 foreach

     $arr=json_decode($arr);
     print_r($arr->Products);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2014-02-24
      • 1970-01-01
      相关资源
      最近更新 更多