【问题标题】:Show URL in JSON以 JSON 格式显示 URL
【发布时间】:2013-06-06 17:08:16
【问题描述】:

我从 json 提供服务,但在 json 中显示 url 时遇到问题,此 url http://git.drieanto.net/LagiDimanaAPI/index.php/user/get_following/1 我尝试从数据库中显示 url,但在 json 中显示 "avatar":"http:\/\/git.drieanto.net\/LagiDimanaAPI\/assets\/image\/avatar\/edwin.png"

如何使显示像这样的普通网址http://git.drieanto.net/LagiDimanaAPI/assets/image/avatar/edwin.png

我用codeigniter这个代码

function get_following($id_follower) {
        if ($this->muser->cek_following($id_follower) == TRUE) {
            $query = $this->muser->get_list_id($id_follower);

            $feedback["following"] = array();

            foreach ($query->result() as $row) {

                $query_list_user = $this->muser->get_all_name_user_from_id($row->id_user);

                if ($query_list_user->num_rows() > 0) {

                    $row_ = $query_list_user->row();

                    $query_status = $this->muser->get_status($row_->id_user);
                    $query_status->num_rows();
                    $row2 = $query_status->row();
                    $response['status'] = $row2->status;

                    $response['regid'] = $row_->regid;

                    $response['id_user'] = $row_->id_user;

                    $response['email'] = $row_->email;

                    $response['nama'] = $row_->nama;

                    $response['jenis_kelamin'] = $row_->jenis_kelamin;

                    $response['tanggal_lahir'] = $row_->tanggal_lahir;

                    $response['instansi'] = $row_->instansi;

                    $response['jabatan'] = $row_->jabatan;

$response['avatar'] = $row_->avatar;

                    $feedback['success'] = 1;
                } else {

                    $feedback['success'] = 0;
                }
                array_push($feedback["following"], $response);
            }
            $feedback['success'] = 1;
            echo json_encode($feedback);
        } else {
            $feedback['success'] = 0;
            echo json_encode($feedback);
        }
    }

谢谢

【问题讨论】:

  • 这是一个不完整的问题。你想在哪里显示网址? php?目标-C? Javascript环境?每种语言都是不同的。
  • 没有任何代码是不可能帮你的。某处某处感觉需要在字符串中的斜杠前面放置反斜杠。很好,\/ is actually a valid JSON string escape (for /)。所以你引用的内容实际上确实有 http://git.drieanto.net/LagiDimanaAPI/assets/image/avatar/edwin.png 作为 avatar 属性的值。
  • 我使用了 codeigniter 抱歉我会显示代码等一下
  • 我有编辑包含代码请帮助
  • @EdwinAndrianto:你看到我上面的评论了吗?任何消耗 JSON 的东西都会正常地看到 URL。要关心这一点,您必须实际查看 JSON 本身。

标签: mysql json


【解决方案1】:

它只是逃避正斜杠。您可以使用str_replace($search_char, $replace_char, $string_to_search), 删除它们。

$stuff = json_decode($response);
$url = str_replace("\\", "", $stuff['url']);

听起来您确实没有解码 JSON,因为我相信 PHP 会自动为您取消转义所有这些内容。

【讨论】:

  • 如果您知道生成的解码后的 JSON 对象(现在只是一个 PHP 数组)中的特定字符串是一个 URL,为什么要从中删除反斜杠?
  • 我并不是说他创建了无效的 JSON。我争辩说,如果他的 JSON 解码器没有为他做这件事,他需要在他的消费应用程序中取消转义 JSON 字符串。
  • 老兄。我从来没有说过它不是一个有效的 JSON 字符串。您是否忘记了他 99% 肯定会使用 JSON 来传输消息,并且在他的消费应用程序(可能是 codeigniter php 脚本)中,他会希望将该 JSON 解码为 PHP 数组。如果结果数组包含一个 STILL ESCAPED VALID JSON STRING,他将希望取消转义该字符串以将其打印到屏幕上。
  • @Chris:我不是说你说他的 JSON 无效(我做了大约 15 秒,因为我误读了你),而且 FWIW 我完全同意,如果他想删除不必要的转义,targeted str_replace 将是要走的路。但不是在整个 JSON 字符串(原始答案)上,甚至在 URL 上也可能不是盲目的。但它完全可选。字符串没有问题。它只包含 URL。使用 JSON 的任何内容都会为您提供一个正常的 URL,完全正确,就好像不存在不必要的转义一样。
  • 我不打算 str_replace 整个 json 字符串。只有生成的解码后的 PHP 字符串由于某种原因仍然包含转义字符。 (这是不应该的。)
猜你喜欢
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2015-06-26
相关资源
最近更新 更多