从json字符串中提取数据元素

I am using the following script to my php script on my server;

$.ajax({
            type: 'POST',
            url: 'http://xx.php',
            data: { anyNumber: val1 },
            success: function(data) {
                alert(data);
            }
});

the php script correct queries sqlsrv database and returns row of data that I encode with echo json_encode($rows); I then correctly receive the json string into data (as above example) When I display the data with alert(data); as above, I get the following:

"({\"id\":1,\"Username\":null,\"Category\":null,\"VIN\":null,\"Make\":null,\"Model\":null,\"Colour\":null,\"Registration\":\"12345     \",\"RegisterNumber\":null,\"EngineNo\":null,\"Branding\":null,\"Remarks\":null,\"Photo1\":null})"

I have tried various methods but cannot assign the various elements to variables. Please help

just set the dataType of your $.ajax call to json:

$.ajax({
        type: 'POST',
        url: 'http://xx.php',
        dataType: 'json',
        data: { anyNumber: val1 },
        success: function(data) {
            alert(data);
        }
});

explanation: when delivering data with GET or POST a lot of characters are getting masked. I think your $.ajax call just doesn't expect JSON as an answer but text or html. that's why it's not reading the JSON string correctly and keeping the masking of the characters.