Q:

Which is better when sending Javascript array to PHP script with jQuery: Using JSON or just let jQuery convert it to query string? 

I'm using jQuery's $.ajax function with POST method to send a javascript array to a PHP script (AFAIK, GET method would be analogue):
fruits = [
    {
        color: "yellow",
        taste: "sour"
    },
    {
        color: "blue",
        taste: "semi-sweet"
    },
]

$.ajax({

    url: "php/script.php",

    data: {
        fruits: fruits
    },

    type: "POST",
});

After making the request, the $_POST variable in PHP is populated with:
$_POST['fruits'][0]['color']
$_POST['fruits'][0]['taste']
$_POST['fruits'][1]['color']
$_POST['fruits'][1]['taste']

Alternatively, in $.ajax function call, I could send data as stringified JSON:
    data: {
        fruits: JSON.stringify(fruits);
    },

In this scenario, the data would be sent as a single string (performance gain?),  but I would have to use json_decode() function in PHP, on $_POST['fruits'] argument:
$fruits = json_decode($_POST['fruits']);

After using it, I would be able to access the data in a similar way:
fruits[0]['color']
fruits[0]['taste']
fruits[1]['color']
fruits[1]['taste']

I wonder, if these methods are similarly good or one of them is better and why.  Thank You in advance for sharing Your knowledge :)

A:

Better is a very fluid concept.  you have to consider several factors and I will try to list some of them. 
Readability:
Json format is highly readable and may map nicely to backend models
which may help you keep a better mental model. 
on the other hand query string is not a far behind readability wise but looks less like an object. 
Performance:
Query string content length is 127 bytes
Json content length is 138 bytes
that eleven bytes difference which may be critical on huge systems. 
Intuition
Your data exchange seems fitting to json. 
You send an array of objects and although it is easy to post like you showed I think it is slightly easier to debug and construct.