It returns a wrong JSON format:
string json = llList2Json(JSON_ARRAY,["\"Hello\" and \"Bye\""]);
llOwnerSay(json); // --> ["Hello" and "Bye"]
llOwnerSay(llJsonGetValue(json,[0])); // --> Bye
Adding something at the start or at the end, for instance a "." at the end, works well:
string json = llList2Json(JSON_ARRAY,["\"Hello\" and \"Bye\"."]);
llOwnerSay(json); // --> ["\"Hello\" and \"Bye\"."]
llOwnerSay(llJsonGetValue(json,[0])); // --> "Hello" and "Bye".