2016-04-12 14 views
8

Sto provando a formare una matrice da una stringa utilizzando il passo Modified Java Script Value. Ecco il mio codice per analizzare una stringa e formare un oggetto JSON.JSON.parse() non funziona in javascript in pentaho

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); 
} 

Qui in JSON.parse() viene generata SyntaxError errore: virgola Missing in array letterale.

Qualcuno può per favore aiutarmi a analizzare la matrice e archiviare in oggetto JSON.

Grazie in anticipo!

+0

Ho eseguito il codice nella console di sviluppo di Chrome e funziona correttamente. Anche in JavaScript puoi compattare la clausola if in questo modo: if (keywords) {...} – fikkatra

+1

Puoi anche usare la funzione 'eval', ma attenzione! – savelichalex

+0

@Arunraj Mostrare cosa si vuole ottenere dopo questo codice, penso che abbia una soluzione più corretta per voi – savelichalex

risposta

1

provare questo

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

Prova questo:

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); 
+0

Assicurati di utilizzare un browser Web (aggiornato) (rispettabile) moderno, come: Chrome, Firefox, Opera, Safari, ecc. – argon

+0

questo non è javascript regolare e pentaho non è un browser. è il motore del rinoceronte isolato – jipipayo

0

Run bollitore in modalità console SpoonConsole.bat

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

java.lang.System.out.println("Original : " + keywords); 

if(keywords != null && keywords != ''){ 
    keywords = keywords.replace(/,/g,'","'); 
    java.lang.System.out.println("Regexp applied : " + keywords); 
    keywords = '["'+keywords+'"]'; 
    java.lang.System.out.println(keywords); 
    info.keywords = JSON.parse(keywords); 
} 

Guardare in consolle e tracciare l'errore nella logica

Questo è solo il modo in cui ho trovato traccia di JavaScript