183 votes

Conversion d'une chaîne de caractères en objet JSON

Comment faire croire à JS qu'une chaîne de caractères est JSON ?

J'ai une fonction qui ne fonctionne que si un objet JSON lui est passé. Si je lui passe une chaîne de caractères au même format que JSON, elle ne fonctionne pas. Je veux donc faire croire à cette fonction que la chaîne qui lui est passée est un JSON. La chaîne est en effet au format JSON.

J'ai également essayé ce qui suit. J'ai saisi la chaîne via Ajax, avec le paramètre "handle as" à "JSON", et lorsque j'ai passé le résultat à la fonction, cela a fonctionné.

J'en déduis donc que le problème ne vient pas de la chaîne de caractères. Comment convertir cette chaîne en JSON ? Si j'obtiens la même chaîne par une requête ajax et que je la passe ensuite à la fonction, cela fonctionne, alors que la passer directement ne fonctionne pas.

La chaîne est la suivante :

  {
     "data": [
   {
  "id": "id1",
      "fields": [
        {
          "id": "name1",
          "label": "joker",
          "unit": "year"
        },
         {"id": "name2", "label": "Quantity"},
    ],
      "rows": [    data here....

and closing braces..

4voto

Sugan V Points 89

Convertir la chaîne en HashMap en utilisant Object Mapper ...

new ObjectMapper().readValue(string, Map.class);

En interne, la carte se comportera comme un objet JSON.

2voto

Ankita_systematix Points 1013
var Data=[{"id": "name2", "label": "Quantity"}]

Passer la variable chaîne dans l'analyse Json :

Objdata= Json.parse(Data);

2voto

Shishir Points 221

Considérons que vous avez une chaîne de caractères comme

exemple : "name:lucy,age:21,gender:female"

function getJsonData(query){
    let arrayOfKeyValues = query.split(',');
    let modifiedArray =  new Array();
    console.log(arrayOfKeyValues);
    for(let i=0;i< arrayOfKeyValues.length;i++){
        let arrayValues = arrayOfKeyValues[i].split(':');
        let arrayString ='"'+arrayValues[0]+'"'+':'+'"'+arrayValues[1]+'"';
        modifiedArray.push(arrayString);
    }
    let jsonDataString = '{'+modifiedArray.toString()+'}';
    let jsonData = JSON.parse(jsonDataString);
    console.log(jsonData);
    console.log(typeof jsonData);
    return jsonData;
}

let query = "name:lucy,age:21,gender:female";
let response = getJsonData(query);
console.log(response);

`

1voto

Vinod Selvin Points 169

JSON.parse() fera l'affaire.

ou

Utilisation de Jquery,

var obj = jQuery.parseJSON( '{ "name": "Vinod" }' );
alert( obj.name === "Vinod" );

1voto

ridwan rf Points 91

JSON.parse() est votre ami. Voici un exemple :

let obj = JSON.parse(yourString)
console.log(typeof obj); // prints 'object' assuming your string is correctly formatted

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X