7
votes

Json.parse () ne fonctionne pas en JavaScript à Pentaho

J'essaie de former une matrice à partir d'une chaîne à l'aide d'une étape modifiée de la valeur de script Java. Voici mon code pour analyser une chaîne et former un objet JSON.

var info = {};
var keywords = 'Adjust course (C-6),Identify underlying factors (C-4),Isolate teacher actions (C-3_)';
if(keywords != null && keywords != ''){
keywords = keywords.replace(/,/g,'","');
keywords = '["'+keywords+'"]';
info.keywords = JSON.parse(keywords);
}


5 commentaires

J'ai exécuté votre code dans la console Chrome Dev et ça marche bien. Également en JavaScript, vous pouvez compacter la clause IF comme si: si (mots-clés) {...}


Vous pouvez également utiliser la fonction eval , mais faites attention!


@Arunraj S'il vous plaît montrer ce que vous voulez obtenir après ce code, je pense que cela a plus de solution correcte pour vous


Pouvez-vous console.log (mots-clés) Avant d'analyser dans votre environnement et dites quelle est-t-il?


java.lang.system.out.println (Mots-clés);


3 Réponses :


1
votes

Essayez ceci:

function kwInfo(text)
{
    return JSON.parse('["' + (text || '').split(',').join('","') + '"]');
}

var text = 'Adjust course (C-6),Identify underlying factors (C-4),Isolate teacher actions (C-3_)';
var info = {keywords:kwInfo(text)};

console.log(info);


2 commentaires

Assurez-vous que vous utilisez un navigateur Web (respectable) moderne (mis à jour), comme: chrome, firefox, opéra, safari, etc.


Ce n'est pas un JavaScript régulier et Pentaho n'est pas un navigateur. c'est le moteur JS Rhino isolé



1
votes

Essayez celui-ci

if(keywords){
  keywords = keywords.split(',');
  info.keywords = keywords;
}


0 commentaires

0
votes

Bouilloire d'exécution en mode console spoonconsole.bat xxx

regarder dans la console et tracez l'erreur dans la logique

Ceci est la solution que j'ai trouvé sur JavaScript Step


0 commentaires