Php 如何从JSON.stringify解码数据

Php 如何从JSON.stringify解码数据,php,json,Php,Json,我无法解码json数据,请帮我解决这个问题。 我正在使用.net中的以下函数进行json编码:- function(response){ var jsonString = JSON.stringify(response.newhtml); //stringify the JSON created //Send the json data to server //--------------------------- $.ajax({ type:

我无法解码json数据,请帮我解决这个问题。 我正在使用.net中的以下函数进行json编码:-

function(response){
    var jsonString = JSON.stringify(response.newhtml); //stringify the JSON created

    //Send the json data to server
    //---------------------------
    $.ajax({
        type: "POST",
        url: 'url',
        //dataType:"json",
        data: {
            LiRecData: jsonString
        },
    }).done(function(msg){
        $('#load_indicator_store').hide(); //Hide loading icon

        if(msg == 'Success'){
            $('#status_save').html('<span class="status_ok">Save.</span>');
        }
        else {
            $('#status_save').html('<span class="status_error">An error occurred. Please try again after sometime.</span>');
        }
    });
}

您的问题是无效的JSON文本

我已尝试修复json。要知道,这很难看。非常难看

因此,将此作为输入:

$a = '{"LinkedIn /*trimmed data to fit this format*/ Recruiting"}]}';
// you use $a = $_POST['LiRecData'];
我所做的是尝试基于一些现有/正确的元素重构JSON:

$a = str_replace(["\n","\t",'<br>','</br>'],'',$a);       // remove new lines, tabs and br tags
$a = preg_replace ( '/([^"])\,([^"])/' , "$1___$2" , $a); // replace commas inside qoutes with SOMETHING
$a = preg_replace ( '/([^"])\:([^"])/' , "$1__|$2" , $a); // replace semicolon inside qoutes with SOMETHING ELSE
$a = str_replace('"','',$a);                              // remove all qoutes
$a = str_replace(':','":"',$a);                           // quote all semicolons 
$a = str_replace(',','","',$a);                           // quote all commas
$a = preg_replace ( '/([\{])([a-zA-Z0-9])/' , "$1\"$2" , $a); // {A => {"A
$a = preg_replace ( '/([\:])\"\s([\[])/' , "$1$2" , $a);      // : " [ => : [
$a = preg_replace ( '/([a-zA-Z0-9])([\}])/' , "$1\"$2" , $a); // adas} => adas"}
$a = preg_replace ( '/([\.])(\s{0,})([\}])/' , "$1\"$3" , $a);
$a = preg_replace ( '/([\"])(\s{1,})([a-zA-Z0-9])/' , "$1$3" , $a); // "   Key" => "Key" trim keys
$a = str_replace(':" }',':"" }',$a);
$a = str_replace(']","','],"', $a);
$a = str_replace("___",",",$a);             // revert comment 2
$a = str_replace("__|",":",$a);             // revert comment 3
$a = str_replace(']}","Top', '],"Top',$a);  //manual fix for TopSkils

print_r(json_decode($a,true));
你可以在这里看到:


您正在将请求发送到url:“url”?正确设置问题的格式能否将问题的文本减少到实际需要的内容?您不需要在这里发布所有JSON数据!我只想解码看起来不是有效json的json数据。检查这里:做得很好,Alex,但忍不住认为这个问题应该在得到答案之前被修改,而继承这个答案的可怜的devmuddle@simpsojo的确但在我最近看到的所有低质量问题中,这一个至少有一些努力。是的,这仍然是一个糟糕的问题,可能太本地化了。但是:OP问得很好,通过json识别了问题,并发布了相关代码/信息。是的,问题更严重:JSON不应该像传输html那样使用。我在这方面花了很多钱。也许是出于个人背景。我曾经遇到过一个类似的问题,从外部WSDL返回的XML字段中有一个json,它太糟糕了,以至于我不得不对它进行两倍于此的解析。。。我记得所有的挫折。。。所以我决定帮忙@亚历克斯塔坦:够公平的,公平竞争
$a = str_replace(["\n","\t",'<br>','</br>'],'',$a);       // remove new lines, tabs and br tags
$a = preg_replace ( '/([^"])\,([^"])/' , "$1___$2" , $a); // replace commas inside qoutes with SOMETHING
$a = preg_replace ( '/([^"])\:([^"])/' , "$1__|$2" , $a); // replace semicolon inside qoutes with SOMETHING ELSE
$a = str_replace('"','',$a);                              // remove all qoutes
$a = str_replace(':','":"',$a);                           // quote all semicolons 
$a = str_replace(',','","',$a);                           // quote all commas
$a = preg_replace ( '/([\{])([a-zA-Z0-9])/' , "$1\"$2" , $a); // {A => {"A
$a = preg_replace ( '/([\:])\"\s([\[])/' , "$1$2" , $a);      // : " [ => : [
$a = preg_replace ( '/([a-zA-Z0-9])([\}])/' , "$1\"$2" , $a); // adas} => adas"}
$a = preg_replace ( '/([\.])(\s{0,})([\}])/' , "$1\"$3" , $a);
$a = preg_replace ( '/([\"])(\s{1,})([a-zA-Z0-9])/' , "$1$3" , $a); // "   Key" => "Key" trim keys
$a = str_replace(':" }',':"" }',$a);
$a = str_replace(']","','],"', $a);
$a = str_replace("___",",",$a);             // revert comment 2
$a = str_replace("__|",":",$a);             // revert comment 3
$a = str_replace(']}","Top', '],"Top',$a);  //manual fix for TopSkils

print_r(json_decode($a,true));