我有database structure like this. 我愿意将行作为Json.net的json对象。
我的PHP代码就是这个
$check_query = mysqli_query($conn, "select * from users where name = '$name' and password = '$pass'");
$rows = array();
while($r = mysqli_fetch_assoc($get_query)) {
$rows[] = $r;
}
if(count($rows) > 0) {
echo json_encode($rows[0]);
}
我这样得到了json。
{"unique_id":"pcg9sy26","name":"w","password":"w","mail":"alpsavrum@gmail.com","age":18,"locale":"Turkey","city":"Istanbul","subscriptions":"[\"electronics\", \"vacations\"]","history":null,"token":"12562f39b990da0433d7be71992ed634"}
如您所见,订阅值为字符串。我需要它看起来像阵列。
{"unique_id":"pcg9sy26","name":"w","password":"w","mail":"alpsavrum@gmail.com","age":18,"locale":"Turkey","city":"Istanbul","subscriptions":[\"electronics\", \"vacations\"],"history":null,"token":"12562f39b990da0433d7be71992ed634"}
有没有办法实现这一目标。 ?
非常感谢!
答案 0 :(得分:0)
以您正在阅读的语言尝试json decode函数。 解码JSON响应然后打印
答案 1 :(得分:0)
您检索该数据的方式是将JSON值作为字符串。如果它实际上是JSON数据,那么将它作为JSON存储在数据库中是一个好主意,但+0.j
驱动程序不会自动为您反序列化它。如果您想要这种行为,则需要使用ORM。
如果您遇到双重编码问题,请查看mysqli
以查看您实际使用的内容。这将显示var_dump
键包含JSON字符串,而不是预期的数组。
您需要做的是在JSON编码之前手动反序列化:
subscriptions
您需要对结果可能包含的任何和所有JSON编码字段执行此操作。
这样你就是JSON编码一个合适的PHP数据结构而不是PHP和部分JSON字符串。