dourukeng5302 2016-08-18 18:39
浏览 43
已采纳

PHP:如何使用引号解码json字符串

A server returns a string like this:

string(150) ""\"{ 'success': false, 
'message': Email address already registered, 
'error': { 'code': 100, 
           'message': 'Email address already registered!' }}\"""

Calling json_decode on the result doesn't change the string into array, it just remains a string.

How can I fix this string to be converted to a PHP array?

  • 写回答

2条回答 默认 最新

  • dpkiubcc265650 2016-08-18 19:05
    关注

    If you still need to get values of success and message keys from that string - use the following approach with preg_match_all and array_combine functions:

    $str = "\"{ 'success': false, 
    'message': Email address already registered, 
    'error': { 'code': 100, 
               'message': 'Email address already registered!' }}\"";
    
    preg_match_all("/'(?<k>success|message)':(?<v>[^,]+)(?=,)/", $str, $matches);
    $result = array_combine($matches['k'], $matches['v']);
    
    print_r($result);
    

    The output:

    Array
    (
        [success] =>  false
        [message] =>  Email address already registered
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题