【发布时间】:2018-02-08 19:29:57
【问题描述】:
我有一个database structure like this. 我愿意将 row 作为 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"}
有什么办法可以做到这一点。 ?
非常感谢!
【问题讨论】:
-
第一个是有效的 JSON。第二个是垃圾。如果你想要一个 JSON 数组,你需要删除那些反斜杠。
-
这不是问题,Json.net 处理反斜杠的事情。我需要去掉这些引号。
-
如果它处理它,那就是一个错误。 JSON Lint 对第二个漏洞版本表示强烈反对。你怎么得到这个字符串?是你正在创作的东西还是你收到的东西?
-
我的 json 解析器 tadman 没有问题,我只需要将该数组作为数组而不是字符串。
-
你能回答这个问题吗:你是构造这个JSON还是接收它?数组值是双重编码的。您需要单独对其进行 JSON 解码以获取数组。