3

我有一个像这样的字符串:

{"Url":"http://localhost","DBName":"John_db","DBUser":"admin","Pass":"a"}

现在使用这个字符串,我想要 URL、DBname、DBuser 并将它们传递给单独的变量,例如:

$DBName =  'John_db';
$DBUser =  'admin';
$Url    =  'http://localhost';
$Pass   = 'a';

我是 PHP 新手,找不到任何解决方案来实现这一点,有人可以帮助我吗?

4

5 回答 5

3

您实际上并不需要将每个变量拆分为单独的变量。您可以将该 JSON 解码为数组或对象:

$str = '{"Url":"http://localhost","DBName":"John_db","DBUser":"admin","Pass":"a"}';
$arr = json_decode( $str, true );

现在你有一个包含所有变量的关联数组:

Array(
  [ Url ] => "http://localhost",
  [ DBName ] => "John_db",
  ...
)

如果你不指定第二个参数json_decode(),你会得到一个普通的对象:

$obj = json_decode( $str );
echo $obj->Url; // http://localhost
echo $obj->DBName; // John_db

参考 -

于 2013-10-10T09:51:23.750 回答
2

“这个字符串”是 JSON 对象。使用json_decode()获取包含所有值的数组,然后从那里获取它。

$str = '{"Url":"http://localhost","DBName":"John_db","DBUser":"admin","Pass":"a"}';
$out = json_decode( $str, true );

$out结束如下:

Array
(
    [Url] => http://localhost
    [DBName] => John_db
    [DBUser] => admin
    [Pass] => a
)
于 2013-10-10T09:51:14.733 回答
2
$ar = json_decode( '{"Url":"http://localhost","DBName":"John_db","DBUser":"admin","Pass":"a"}', 1 );
foreach ($ar as $k => $a) {
   $$k = $a;
}

现在你应该填充你的变量。

这里的工作代码:http: //codepad.org/Do9ixqfN

于 2013-10-10T09:52:25.863 回答
1

像这样使用 json_decode 函数:

<?
$string = '{"Url":"http://localhost","DBName":"John_db","DBUser":"admin","Pass":"a"}';
$array = json_decode( $string, true );

print_r($array);
?>

工作代码

于 2013-10-10T09:53:57.440 回答
0

该字符串是一个 JSON 对象,您可以使用 json_decode 将该字符串转换为关联数组。

于 2013-10-10T09:54:05.320 回答