Je transmets une structure de données Perl à encode_json
, et utilise sa valeur de retour comme entrée pour poster vers une API REST.
Exemple:
$data = (input1 => true);
$json_data = encode_json($data);
print $json_data; // Affiche: ["input1":"true"]
$url= http://api.example.com/resources/getDataAPI
$headers = {Accept => 'application/json', Authorization => 'Basic ' . encode_base64($username . ':' . $password)};
$client = REST::Client->new();
$client->POST($url,($json_data,$headers));
Cela fonctionnait très bien.
Récemment, un autre développeur a ajouté quelques vérifications de validité des paramètres d'entrée, et REST n'accepte strictement que des valeurs booléennes, sans guillemets.
Je dois maintenant envoyer mes données d'entrée comme
$data = '["inout1":true]'
$client = REST::Client->new();
$client->POST($url,($data,$headers));
Tous mes scripts échouent car les données d'entrée sont encodées au format JSON en utilisant la fonction encode_json
.
Je peux former manuellement des données JSON, mais les données d'entrée peuvent parfois être très volumineuses. Je ne peux pas les identifier et les modifier à chaque fois.
Y a-t-il un moyen de réussir à passer une valeur booléenne sans guillemets ?