如何从api响应中获取以变量开头的值?

时间:2017-10-07 06:31:05

标签: php json api curl

最近我一直在尝试更多地了解api,所以当我遇到一个新的时候我喜欢看一下它。我最近发现的一个对我来说有点奇怪。我经常在很多api上看到普通的json,但这个有点不同。我不确定它是否只是糟糕的设计,或者他们是否有充分的理由让答案成为他们的方式。以下是输出结果的示例。

示例:

var List = {
 'DATA': {
  'RESULT': '1',
  'CONFIG': [{
    'value1': '123',
    'value2': 'example',
    'value3': '456',
    'value4': 'text'
   }
  ],
  'INFO': [{
    "value1": "123",
    "value2": "example",
    "value3": "456",
    "value4": "text",
    "value5": "example2",
    "value6": "789",
    "value7": "text2"
   }, {
    "value1": "123",
    "value2": "example",
    "value3": "456",
    "value4": "text",
    "value5": "example2",
    "value6": "789",
    "value7": "text2"
   }, {
    "value1": "123",
    "value2": "example",
    "value3": "456",
    "value4": "text",
    "value5": "example2",
    "value6": "789",
    "value7": "text2"
   }, {
    "value1": "123",
    "value2": "example",
    "value3": "456",
    "value4": "text",
    "value5": "example2",
    "value6": "789",
    "value7": "text2"
   }, {
    "value1": "123",
    "value2": "example",
    "value3": "456",
    "value4": "text",
    "value5": "example2",
    "value6": "789",
    "value7": "text2"
   }
  ]
 }
};

这通常是我通常用于获取json响应的内容。

$url = "http://example.com/endpoint";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0)Gecko/20100101 Firefox/53.0',
'Accept-Encoding: gzip, deflate',
'Cache-Control: no-cache'
));
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
curl_setopt($ch, CURLINFO_HEADER_OUT, FALSE);

$json_response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close ($ch);
$result = json_decode($json_response, true);

foreach ($result as $info) {

}

上面不会输出任何内容,因为它是一个字符串,所以我尝试改变:

$json_response = curl_exec($ch);

$json_response = substr(curl_exec($ch), strpos(curl_exec($ch), "{"));

然后用

打印
print_r($json_response);

这给了我整个回复,但我想知道如何通过循环实际运行它来获取各个值,就像我通常用普通json做的那样。
我已经尝试了剥离开头的组合,将单引号转换为双引号,使用explode将其转换为数组并使用json_encode和json_decode等,但我无法弄清楚要做什么才能运行它并获得个人价值观。

如果有人有任何关于如何实现这一目标的建议或例子,我将不胜感激。如果我再次碰到这样的事情并且实际上想要用它做一些事情,那将是很好的。感谢。

0 个答案:

没有答案