如何从JSON对象中提取字符串

时间:2010-11-30 20:04:38

标签: php json decode

这是代码

$jsonString = urldecode($json);
$jsonString = str_replace("\\", "", $jsonString);
$data = JSON_decode($jsonString);
mysql_select_db($database) or die('Cannot connect to database.');
print_r($data);

输出:

  stdClass Object ( [myObject] => Array ( [0] => stdClass Object ( [fullname] => abc [role] => ADMIN [username] => xyz ) ) ) 

我的问题如何提取单个值并将其插入数据库  全名,角色和用户名

3 个答案:

答案 0 :(得分:2)

默认情况下json_decode将JSON对象转换为PHP对象,因此您需要像以下一样访问它:

$data->myObject[0]->fullname;

将数据存储在mysql查询中时:

$query = "INSERT INTO table SET fullname = '{$data->myObject[0]->fullname}'";

如果您更喜欢使用数组而不是对象,可以使用:

$data = json_decode($jsonString, true); //notice the 2nd parameter

通过这种方式,您可以使用类似于所描述的其他两个海报的数组来访问您的变量。

修改

你真的不需要使用for循环,你只需设置:

$data = json_decode($jsonString, true);
$users = $data['myObject'];

因为你已经在$ data ['myObject']中拥有一个完全有效的数组。

答案 1 :(得分:1)

获取全名:

$fullname = $data['myObject'][0]['fullname'];

相同的角色/ ADMIN

您可以将其添加到SQL字符串中以插入数据库。

有关插入mysql的示例,请参阅:http://www.w3schools.com/PHP/php_mysql_insert.asp

答案 2 :(得分:1)

如果你这样做

$data = JSON_decode($jsonString, true); // just add true

然后只需使用

$name = $data['myObject'][0]['name']; 

并保存