从json中提取变量


extracting variables from a json

假设我有一个json文件,看起来像:

  {  
   "query":[  
      {  
         "pid":"abc"
      },
      {  
         "status":"cde"
      },
      {  
         "uname":"{{user->username}}"
      },
      {  
         "pass":"{{user->password}}"
      }
   ]
}

假设我将其转换为使用json_decode的php数组,提取{{之间的值的最简单方法是什么?数组的其余部分为常量。

或者可能有一个工具可以将动态变量/参数放入json文件中,并轻松地将它们提取到php....

我使用Laravel 5.1作为框架。目的是配置系统,为不同的API (serviceabs.json,serviceefg.json)建立API连接,从中获取不同的数据。这些api有不同的身份验证机制....我也不想把这个机密数据放入json文件,但"注入"它.....当数据准备好后,使用guzzle client建立连接。(填写用户名、密码等后)

例如,这里的"query"数组,将被用作guzzle客户端的GET查询。

可以优化,但请尝试:

$in = "hello {{world}} I am a {{fox}} my name is {{user->username}}";
preg_match_all('/'{'{([A-Za-z0-9 ->]+?)'}'}/', $in, $out);
print_r($out[1]);

输出:

Array ( [0] => world [1] => fox [2] => user->username )

你的案例应该是:

$in = '{{user->username}}';
preg_match_all('/'{'{([A-Za-z0-9 ->]+?)'}'}/', $in, $out);
if(isset($out[1])) {
    //there are matched within brackets 
    echo $out[1][0];  // will output: user->username
}