【问题标题】:how to remove back slashes from json output in php如何从php中的json输出中删除反斜杠
【发布时间】:2015-07-27 00:14:30
【问题描述】:

我用过的代码:

$val = json_encode(array("test"=>test1,"test2" =>test,"description" => description));
return $val;

我得到的结果

{\"test\":\"test1\",\"test2\":\"test\",\"description\":\"description\"}

我需要这个来修复 api

【问题讨论】:

  • 你从哪里得到这个输出?我的意思是php脚本。你能给我们看看那个代码吗
  • 这只是一个示例输出。我需要删除反斜杠
  • 但关键是,你从哪里得到第一名? JSON解码?一个API?因为这可能会影响答案
  • @Aparna 如果是代码的问题,或者是在分配 json 值时发生的问题,那么最好在开始时而不是在结束时使用 stripslashes() 解决它...跨度>
  • 您期待是什么?您尝试过什么解决方法?

标签: php json api


【解决方案1】:

试试stripslashes()

echo stripslashes('{\"test\":{\"test1\":{\"test1\":[{\"test2\":\"1\",\"test3\": \"foo\",\"test4\":\"bar\",\"test5\":\"test7\"}]}}}');

stripslashes()

【讨论】:

    【解决方案2】:

    使用stripslashes() 并阅读stripslashes

    <?php
    $srt="'{\"test\":{\"test1\":{\"test1\":[{\"test2\":\"1\",\"test3\": \"foo\",\"test4\":\"bar\",\"test5\":\"test7\"}]}}}'
    ";
    echo stripslashes($srt);
    

    输出

    '{"test":{"test1":{"test1":[{"test2":"1","test3": "foo","test4":"bar","test5":"test7"}]}}}'

    【讨论】:

    • 我结合了您的答案和以下答案 - json_decode(stripslashes($val), true, JSON_UNESCAPED_SLASHES); - 谢谢你
    【解决方案3】:

    使用字符串查找和替换功能

    $str="{"test":{"test1":{"test1":[{"test2":"1","test3": "foo","test4":"bar","test5":"test7"}]}}}";
    
    str_replace("\'","'",$str);
    

    【讨论】:

      【解决方案4】:

      在 php 中存在“stripslashes”函数,使用它可以删除反斜杠。

      Link for more details。

      示例:

      echo $strnew = stripslashes('{\"test\":{\"test1\":{\"test1\":[{\"test2\":\"1\",\"test3\": \"foo\",\"test4\":\"bar\",\"test5\":\"test7\"}]}}}');
      

      【讨论】:

        【解决方案5】:

        您可以使用 JSON_UNESCAPED_SLASHES

        json_encode($yourjson, JSON_UNESCAPED_SLASHES);
        

        【讨论】:

          【解决方案6】:

          试过了。

          $val = json_encode(array(
            "test"=>'test1',
            "test2" =>'test',
            "description" => 'description'
          ));
          
          $data = json_decode($val, true, JSON_UNESCAPED_SLASHES);
          return $data;
          

          这是我收到的结果。

          【讨论】:

          • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
          • 谢谢。我已经为答案添加了更多细节。
          • 你的回答对我有用,谢谢@KajornjitSongsaen
          【解决方案7】:

          试试下面的代码。它对我来说非常好$cha一个带反斜杠的字符串

          $cha = "{\"ashen\":\"143\"}";
          $chachi = json_decode($cha,JSON_UNESCAPED_SLASHES);
          return $chachi['ashen'];
          
          输出:143

          【讨论】:

          • 请在您的答案中添加一些解释,以便其他人可以从中学习
          • @NicoHaase 我认为没有什么要解释的。当 JSON 对象中有“\”表示它是这样编码的时,所做的只是使用预内置的 PHP 方法 json_decode 来解码 JSON 对象,从而给出漂亮的打印
          • 请通过编辑将所有此类解释添加到您的答案中。你的代码有什么特别的吗?还是其他答案中未提供的其他内容?
          • ....特别是,当 OP 询问如何删除斜杠,而不是如何解码字符串时
          【解决方案8】:

          其实只有 Khachornchit Songsaen 的答案是正确的。

          stripslashes 不适用于在另一个 json 中的 json 编码字符串中转义转义的 "。

          es.

          { "key1" :"value1", "key2": "{\"key\":\"Text \\\"text\\\" text\"}" }
            
          

          使用json_decode($var, true, JSON_UNESCAPED_SLASHES) 可以正确完成工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-02-02
            • 1970-01-01
            • 1970-01-01
            • 2016-06-16
            • 2012-12-21
            • 2016-12-05
            • 2013-01-17
            • 1970-01-01
            相关资源
            最近更新 更多